From 1af578bb1a0e671169a6e1cba4d3d633951c14e2 Mon Sep 17 00:00:00 2001 From: Rene Engelhard Date: Fri, 7 Aug 2020 18:30:24 +0100 Subject: [PATCH] Import libreoffice_7.0.1~rc1-1.debian.tar.xz [dgit import tarball libreoffice 1:7.0.1~rc1-1 libreoffice_7.0.1~rc1-1.debian.tar.xz] --- debian/README | 83 + debian/README.Debian | 307 ++ debian/README.Debian-source | 82 + debian/README.qa | 59 + debian/branding/progress.conf | 1 + debian/bug-presubj | 60 + debian/changelog | Bin 0 -> 621910 bytes debian/control | Bin 0 -> 217763 bytes debian/control.evolution.in | 17 + debian/control.firebird.in | 12 + debian/control.fonts.in | 13 + debian/control.gtk3.in | 49 + debian/control.help.in | 17 + debian/control.in | 909 ++++ debian/control.kf5.in | 17 + debian/control.lang.in | 29 + debian/control.librelogo.in | 22 + debian/control.lokit.in | 16 + debian/control.mediawiki.in | 19 + debian/control.nlpsolver.in | 14 + debian/control.plasma.in | 13 + debian/control.postgresql.in | 17 + debian/control.qt5.in | 14 + debian/control.reportbuilder.in | 55 + debian/control.sdk.in | 70 + debian/control.test-packages.in | 18 + debian/control.transitionals.in | 36 + debian/control.ure.in | 199 + debian/copyright | 293 ++ debian/gir1.2-lokdocview-0.1.maintscript | 1 + debian/libjuh-java.lintian-overrides | 1 + debian/libjuh-java.poms | 28 + debian/libjurt-java.lintian-overrides | 1 + debian/libjurt-java.poms | 28 + debian/liblibreofficekitgtk.links | 1 + debian/liblibreofficekitgtk.maintscript | 1 + debian/libofficebean-java.poms | 28 + ...fice-avmedia-backend-gstreamer.maintscript | 1 + debian/libreoffice-base-core.maintscript | 1 + debian/libreoffice-base-drivers.NEWS | 14 + debian/libreoffice-base-drivers.maintscript | 1 + debian/libreoffice-base-nogui.bug-control | 2 + debian/libreoffice-base-nogui.mime | 11 + debian/libreoffice-base-nogui.ucf | 1 + debian/libreoffice-base.NEWS | 14 + debian/libreoffice-base.bug-control | 2 + debian/libreoffice-base.lintian-overrides | 1 + debian/libreoffice-base.maintscript | 1 + debian/libreoffice-base.manpages | 1 + debian/libreoffice-base.mime | 11 + debian/libreoffice-base.preinst.in | 21 + debian/libreoffice-base.ucf | 1 + .../libreoffice-calc-nogui.lintian-overrides | 1 + debian/libreoffice-calc-nogui.ucf | 1 + debian/libreoffice-calc.bug-control | 1 + debian/libreoffice-calc.lintian-overrides | 2 + debian/libreoffice-calc.maintscript | 1 + debian/libreoffice-calc.manpages | 2 + debian/libreoffice-calc.mime | 37 + debian/libreoffice-calc.ucf | 1 + debian/libreoffice-common.bug-control | 1 + debian/libreoffice-common.docs | 1 + debian/libreoffice-common.links.in | 36 + debian/libreoffice-common.lintian-overrides | 2 + debian/libreoffice-common.maintscript | 4 + debian/libreoffice-common.manpages | 4 + debian/libreoffice-common.postinst.in | 29 + debian/libreoffice-common.postrm.in | 26 + debian/libreoffice-common.triggers.in | 2 + debian/libreoffice-common.ucf | 6 + debian/libreoffice-core-nogui.bug-control | 1 + debian/libreoffice-core-nogui.bug-script.in | 16 + .../libreoffice-core-nogui.lintian-overrides | 1 + debian/libreoffice-core.bug-control | 2 + debian/libreoffice-core.bug-script.in | 20 + debian/libreoffice-core.lintian-overrides | 1 + debian/libreoffice-core.maintscript | 1 + debian/libreoffice-core.postrm.in | 13 + debian/libreoffice-dev-common.maintscript | 1 + debian/libreoffice-dev-doc.links | 1 + debian/libreoffice-dev.lintian-overrides | 1 + debian/libreoffice-dev.maintscript | 1 + debian/libreoffice-draw-nogui.bug-control | 1 + debian/libreoffice-draw-nogui.mime | 13 + debian/libreoffice-draw-nogui.ucf | 2 + debian/libreoffice-draw.bug-control | 1 + debian/libreoffice-draw.lintian-overrides | 1 + debian/libreoffice-draw.maintscript | 1 + debian/libreoffice-draw.manpages | 1 + debian/libreoffice-draw.mime | 13 + debian/libreoffice-draw.ucf | 2 + debian/libreoffice-evolution.bug-control | 1 + debian/libreoffice-evolution.maintscript | 1 + debian/libreoffice-evolution.ucf | 1 + debian/libreoffice-gnome.maintscript | 1 + debian/libreoffice-gnome.ucf | 1 + debian/libreoffice-gtk3.maintscript | 1 + .../libreoffice-help-ca-valencia.maintscript | 1 + debian/libreoffice-help-ca.maintscript | 1 + debian/libreoffice-help-common.links | 1 + debian/libreoffice-help-common.maintscript | 1 + debian/libreoffice-help-cs.maintscript | 1 + debian/libreoffice-help-da.maintscript | 1 + debian/libreoffice-help-de.maintscript | 1 + debian/libreoffice-help-dz.maintscript | 1 + debian/libreoffice-help-el.maintscript | 1 + debian/libreoffice-help-en-gb.maintscript | 1 + debian/libreoffice-help-en-us.maintscript | 1 + debian/libreoffice-help-es.maintscript | 1 + debian/libreoffice-help-et.maintscript | 1 + debian/libreoffice-help-eu.maintscript | 1 + debian/libreoffice-help-fi.maintscript | 1 + debian/libreoffice-help-fr.maintscript | 1 + debian/libreoffice-help-gl.maintscript | 1 + debian/libreoffice-help-hi.maintscript | 1 + debian/libreoffice-help-hu.maintscript | 1 + debian/libreoffice-help-id.maintscript | 1 + debian/libreoffice-help-it.maintscript | 1 + debian/libreoffice-help-ja.maintscript | 1 + debian/libreoffice-help-km.maintscript | 1 + debian/libreoffice-help-ko.maintscript | 1 + debian/libreoffice-help-nl.maintscript | 1 + debian/libreoffice-help-om.maintscript | 1 + debian/libreoffice-help-pl.maintscript | 1 + debian/libreoffice-help-pt-br.maintscript | 1 + debian/libreoffice-help-pt.maintscript | 1 + debian/libreoffice-help-ru.maintscript | 1 + debian/libreoffice-help-sk.maintscript | 1 + debian/libreoffice-help-sl.maintscript | 1 + debian/libreoffice-help-sv.maintscript | 1 + debian/libreoffice-help-tr.maintscript | 1 + debian/libreoffice-help-vi.maintscript | 1 + debian/libreoffice-help-zh-cn.maintscript | 1 + debian/libreoffice-help-zh-tw.maintscript | 1 + debian/libreoffice-help.lintian-overrides.in | 15 + debian/libreoffice-impress-nogui.bug-control | 1 + debian/libreoffice-impress-nogui.mime | 25 + debian/libreoffice-impress-nogui.ucf | 1 + debian/libreoffice-impress.bug-control | 1 + debian/libreoffice-impress.lintian-overrides | 1 + debian/libreoffice-impress.maintscript | 1 + debian/libreoffice-impress.manpages | 1 + debian/libreoffice-impress.mime | 25 + debian/libreoffice-impress.ucf | 2 + debian/libreoffice-java-common.maintscript | 1 + debian/libreoffice-kde5.maintscript | 1 + debian/libreoffice-kf5.maintscript | 1 + debian/libreoffice-l10n-af.maintscript | 1 + debian/libreoffice-l10n-am.maintscript | 1 + debian/libreoffice-l10n-ar.maintscript | 1 + debian/libreoffice-l10n-as.maintscript | 1 + debian/libreoffice-l10n-ast.maintscript | 1 + debian/libreoffice-l10n-be.maintscript | 1 + debian/libreoffice-l10n-bg.maintscript | 1 + debian/libreoffice-l10n-bn.maintscript | 1 + debian/libreoffice-l10n-br.maintscript | 1 + debian/libreoffice-l10n-bs.maintscript | 1 + debian/libreoffice-l10n-ca.maintscript | 1 + debian/libreoffice-l10n-cs.maintscript | 1 + debian/libreoffice-l10n-cy.maintscript | 1 + debian/libreoffice-l10n-da.maintscript | 1 + debian/libreoffice-l10n-de.maintscript | 1 + debian/libreoffice-l10n-dz.maintscript | 1 + debian/libreoffice-l10n-el.maintscript | 1 + debian/libreoffice-l10n-en-gb.maintscript | 1 + debian/libreoffice-l10n-en-us.maintscript | 1 + debian/libreoffice-l10n-en-za.maintscript | 1 + debian/libreoffice-l10n-eo.maintscript | 1 + debian/libreoffice-l10n-es.maintscript | 1 + debian/libreoffice-l10n-et.maintscript | 1 + debian/libreoffice-l10n-eu.maintscript | 1 + debian/libreoffice-l10n-fa.maintscript | 1 + debian/libreoffice-l10n-fi.maintscript | 1 + debian/libreoffice-l10n-fr.maintscript | 1 + debian/libreoffice-l10n-ga.maintscript | 1 + debian/libreoffice-l10n-gd.maintscript | 1 + debian/libreoffice-l10n-gl.maintscript | 1 + debian/libreoffice-l10n-gu.maintscript | 1 + debian/libreoffice-l10n-gug.maintscript | 1 + debian/libreoffice-l10n-he.maintscript | 1 + debian/libreoffice-l10n-hi.maintscript | 1 + debian/libreoffice-l10n-hr.maintscript | 1 + debian/libreoffice-l10n-hu.maintscript | 1 + debian/libreoffice-l10n-id.maintscript | 1 + debian/libreoffice-l10n-in.lintian-overrides | 2 + debian/libreoffice-l10n-in.maintscript | 1 + debian/libreoffice-l10n-is.maintscript | 1 + debian/libreoffice-l10n-it.maintscript | 1 + debian/libreoffice-l10n-ja.maintscript | 1 + debian/libreoffice-l10n-ka.maintscript | 1 + debian/libreoffice-l10n-kk.maintscript | 1 + debian/libreoffice-l10n-km.maintscript | 1 + debian/libreoffice-l10n-kmr.maintscript | 1 + debian/libreoffice-l10n-kn.maintscript | 1 + debian/libreoffice-l10n-ko.maintscript | 1 + debian/libreoffice-l10n-lt.maintscript | 1 + debian/libreoffice-l10n-lv.maintscript | 1 + debian/libreoffice-l10n-mk.maintscript | 1 + debian/libreoffice-l10n-ml.maintscript | 1 + debian/libreoffice-l10n-mn.maintscript | 1 + debian/libreoffice-l10n-mr.maintscript | 1 + debian/libreoffice-l10n-nb.maintscript | 1 + debian/libreoffice-l10n-ne.maintscript | 1 + debian/libreoffice-l10n-nl.maintscript | 1 + debian/libreoffice-l10n-nn.maintscript | 1 + debian/libreoffice-l10n-nr.maintscript | 1 + debian/libreoffice-l10n-nso.maintscript | 1 + debian/libreoffice-l10n-oc.maintscript | 1 + debian/libreoffice-l10n-om.maintscript | 1 + debian/libreoffice-l10n-or.maintscript | 1 + debian/libreoffice-l10n-pa-in.maintscript | 1 + debian/libreoffice-l10n-pl.maintscript | 1 + debian/libreoffice-l10n-pt-br.maintscript | 1 + debian/libreoffice-l10n-pt.maintscript | 1 + debian/libreoffice-l10n-ro.maintscript | 1 + debian/libreoffice-l10n-ru.maintscript | 1 + debian/libreoffice-l10n-rw.maintscript | 1 + debian/libreoffice-l10n-si.maintscript | 1 + debian/libreoffice-l10n-sk.maintscript | 1 + debian/libreoffice-l10n-sl.maintscript | 1 + debian/libreoffice-l10n-sr.maintscript | 1 + debian/libreoffice-l10n-ss.maintscript | 1 + debian/libreoffice-l10n-st.maintscript | 1 + debian/libreoffice-l10n-sv.maintscript | 1 + debian/libreoffice-l10n-ta.maintscript | 1 + debian/libreoffice-l10n-te.maintscript | 1 + debian/libreoffice-l10n-tg.maintscript | 1 + debian/libreoffice-l10n-th.maintscript | 1 + debian/libreoffice-l10n-tn.maintscript | 1 + debian/libreoffice-l10n-tr.maintscript | 1 + debian/libreoffice-l10n-ts.maintscript | 1 + debian/libreoffice-l10n-ug.maintscript | 1 + debian/libreoffice-l10n-uk.maintscript | 1 + debian/libreoffice-l10n-uz.maintscript | 1 + debian/libreoffice-l10n-ve.maintscript | 1 + debian/libreoffice-l10n-vi.maintscript | 1 + debian/libreoffice-l10n-xh.maintscript | 1 + debian/libreoffice-l10n-za.lintian-overrides | 2 + debian/libreoffice-l10n-za.maintscript | 1 + debian/libreoffice-l10n-zh-CN.maintscript | 1 + debian/libreoffice-l10n-zh-TW.maintscript | 1 + debian/libreoffice-l10n-zh-cn.maintscript | 1 + debian/libreoffice-l10n-zh-tw.maintscript | 1 + debian/libreoffice-l10n-zu.maintscript | 1 + debian/libreoffice-l10n.ucf.in | 3 + debian/libreoffice-librelogo.ucf | 1 + debian/libreoffice-math-nogui.bug-control | 1 + debian/libreoffice-math-nogui.mime | 14 + debian/libreoffice-math-nogui.ucf | 1 + debian/libreoffice-math.bug-control | 1 + debian/libreoffice-math.lintian-overrides | 1 + debian/libreoffice-math.maintscript | 1 + debian/libreoffice-math.manpages | 1 + debian/libreoffice-math.mime | 14 + debian/libreoffice-math.ucf | 1 + .../libreoffice-mysql-connector.maintscript | 1 + debian/libreoffice-nlpsolver.bug-script.in | 2 + .../libreoffice-nlpsolver.lintian-overrides | 1 + debian/libreoffice-officebean.maintscript | 1 + debian/libreoffice-plasma.maintscript | 1 + debian/libreoffice-qt5.maintscript | 1 + ...libreoffice-report-builder-bin.maintscript | 1 + debian/libreoffice-report-builder.bug-control | 1 + debian/libreoffice-report-builder.maintscript | 1 + debian/libreoffice-report-builder.ucf | 1 + ...ibreoffice-script-provider-bsh.maintscript | 1 + ...libreoffice-script-provider-js.maintscript | 1 + ...eoffice-script-provider-python.bug-control | 1 + ...eoffice-script-provider-python.maintscript | 1 + debian/libreoffice-sdbc-firebird.NEWS | 21 + debian/libreoffice-sdbc-firebird.maintscript | 1 + debian/libreoffice-sdbc-hsqldb.maintscript | 1 + debian/libreoffice-sdbc-mysql.maintscript | 1 + .../libreoffice-sdbc-postgresql.maintscript | 2 + debian/libreoffice-sdbc-postgresql.ucf | 1 + debian/libreoffice-style-breeze.maintscript | 1 + debian/libreoffice-style-colibre.maintscript | 1 + .../libreoffice-style-elementary.maintscript | 1 + .../libreoffice-style-karasa-jaga.maintscript | 1 + debian/libreoffice-style-sifr.maintscript | 1 + debian/libreoffice-style-tango.maintscript | 1 + ...ibreoffice-subsequentcheckbase.maintscript | 1 + .../libreoffice-wiki-publisher.bug-script.in | 2 + ...breoffice-wiki-publisher.lintian-overrides | 1 + debian/libreoffice-writer-nogui.bug-control | 1 + debian/libreoffice-writer-nogui.mime | 37 + debian/libreoffice-writer-nogui.ucf | 1 + debian/libreoffice-writer.bug-control | 1 + debian/libreoffice-writer.lintian-overrides | 1 + debian/libreoffice-writer.maintscript | 1 + debian/libreoffice-writer.manpages | 3 + debian/libreoffice-writer.mime | 37 + debian/libreoffice-writer.ucf | 1 + debian/libreoffice.bug-control | 2 + debian/libreofficekit-data.maintscript | 1 + debian/libreofficekit-dev.docs | 1 + debian/libridl-java.poms | 28 + debian/libuno-cppu3.lintian-overrides | 2 + debian/libuno-cppu3.symbols | 9 + .../libuno-cppuhelpergcc3-3.lintian-overrides | 3 + debian/libuno-cppuhelpergcc3-3.symbols | 15 + ...buno-purpenvhelpergcc3-3.lintian-overrides | 2 + debian/libuno-purpenvhelpergcc3-3.symbols | 5 + debian/libuno-sal3.lintian-overrides | 2 + debian/libuno-sal3.symbols | 38 + .../libuno-salhelpergcc3-3.lintian-overrides | 2 + debian/libuno-salhelpergcc3-3.symbols | 7 + debian/libunoil-java.poms | 28 + debian/libunoloader-java.poms | 28 + debian/patches/add-access2base-doc.diff | Bin 0 -> 1308520 bytes .../patches/apparmor-allow-java.security.diff | 14 + debian/patches/apparmor-cleanups.diff | 105 + debian/patches/apparmor-complain.diff | 26 + debian/patches/apparmor-mesa.diff | 10 + debian/patches/apparmor-opencl.diff | 20 + .../patches/appstream-ignore-startcenter.diff | 10 + .../patches/build-against-shared-lpsolve.diff | 27 + debian/patches/cppunit-optional.diff | 185 + debian/patches/debian-debug.diff | 47 + .../debian-hardened-buildflags-CPPFLAGS.diff | 37 + ...ldflags-no-LO-fstack-protector-strong.diff | 32 + debian/patches/debian-opt.diff | 26 + debian/patches/disable-flaky-tests.diff | 140 + ...java-in-odk-build-examples-on-zero-vm.diff | 58 + ...sable-shortcuts_tab_navigation-uitest.diff | 49 + .../patches/disable-unused-test-programs.diff | 70 + debian/patches/disableClassPathURLCheck.diff | 10 + debian/patches/do-not-hide-test-output.diff | 99 + debian/patches/dont-touch-urd.diff | 80 + debian/patches/fix-flaky-bridgetest.diff | 46 + debian/patches/fix-internal-hsqldb-build.diff | 45 + debian/patches/fix-lo-xlate-lang-nb.diff | 13 + debian/patches/fix-system-lpsolve-build.diff | 31 + .../patches/fix-uicheck-tests-on-i386.patch | 34 + debian/patches/help-msg-add-package-info.diff | 13 + debian/patches/hide-math-desktop-file.patch | 15 + debian/patches/hppa-is-32bit.diff | 13 + debian/patches/install-fixes.diff | 166 + debian/patches/javadoc-optional.diff | 153 + debian/patches/jdbc-driver-classpaths.diff | 35 + debian/patches/jurt-soffice-location.diff | 20 + .../make-package-modules-not-suck.diff | 200 + debian/patches/mediwiki-oor-replace.diff | 51 + .../patches/mention-java-common-package.diff | 35 + debian/patches/no-check-if-root.diff | 26 + debian/patches/no-opencl-per-default.diff | 26 + debian/patches/no-openssl.diff | 345 ++ debian/patches/no-packagekit-per-default.diff | 21 + .../patches/reportdesign-mention-package.diff | 13 + debian/patches/sc-opengl-optional.diff | 26 + .../patches/search-usr-share-for-images.diff | 137 + debian/patches/sensible-lomua.diff | 50 + debian/patches/series | 46 + debian/patches/split-evoab.diff | 61 + .../system-officeotron-and-odfvalidator.diff | 16 + ...se-mariadb-java-instead-of-mysql-java.diff | 59 + debian/python3-access2base.links | 1 + debian/python3-uno.NEWS | 11 + debian/python3-uno.ucf | 1 + debian/rules | 3876 +++++++++++++++++ debian/scripts/fix_component_tarballs.sh | 36 + debian/scripts/get_libebook_dep.sh | 33 + debian/scripts/gid2pkgdirs.sh | 177 + debian/scripts/joinctrl.py | 66 + debian/scripts/locale-gen | 32 + debian/scripts/move-if-change | 32 + debian/scripts/stat_pos.sh | 32 + debian/shell-lib-extensions.sh | 10 + debian/shell-lib-lool.sh | 5 + debian/shlibs.override.icu | 5 + debian/shlibs.override.libc | 1 + debian/shlibs.override.libcmis | 2 + debian/shlibs.override.libetonyek | 1 + debian/shlibs.override.liblangtag | 1 + debian/shlibs.override.libmwaw | 1 + debian/shlibs.override.libodfgen | 1 + debian/shlibs.override.librevenge | 1 + debian/shlibs.override.libstaroffice | 1 + debian/shlibs.override.libvisio | 1 + debian/shlibs.override.libwpd | 1 + debian/shlibs.override.libwpg | 1 + debian/shlibs.override.libwps | 1 + debian/shlibs.override.orcus | 2 + debian/soffice.sh | 21 + debian/source/format | 1 + debian/source/include-binaries | 9 + debian/source/lintian-overrides | 5 + .../debian-presentation-background.xcf | Bin 0 -> 2202921 bytes debian/templates/debian-presentation.otp | Bin 0 -> 726796 bytes debian/templates/soffice-template.desktop.in | 8 + debian/tests/access2base-import | 4 + debian/tests/control | 70 + debian/tests/junit | 56 + debian/tests/odk-build-examples | 42 + debian/tests/patches/disable-db-tests.diff | 130 + .../java-subsequentcheck-standalone.diff | 126 + .../odk-build-examples-standalone.diff | 50 + .../smoketest-disable-extension-tests.diff | 98 + .../tests/patches/smoketest-standalone.diff | 32 + .../tests/patches/testtools-standalone.diff | 227 + debian/tests/patches/uicheck-standalone.diff | 69 + debian/tests/pyuno-import | 8 + debian/tests/smoketest | 87 + debian/tests/test-extension | 33 + debian/tests/test-extension-shared | 34 + debian/tests/uicheck-cui | 61 + debian/tests/uicheck-sc | 61 + debian/tests/uicheck-sd | 61 + debian/tests/uicheck-sw | 61 + debian/tests/uicheck-uitest | 61 + debian/tests/uicheck-writerperfect | 61 + debian/tests/uno | 55 + debian/tests/uno-import | 4 + debian/upstream/metadata | 7 + debian/upstream/signing-key.asc | 66 + debian/ure.bug-script.in | 5 + debian/ure.lintian-overrides | 1 + debian/vars.alpha | 1 + debian/vars.amd64 | 1 + debian/vars.arm | 1 + debian/vars.arm64 | 1 + debian/vars.armel | 1 + debian/vars.armhf | 1 + debian/vars.hppa | 1 + debian/vars.i386 | 1 + debian/vars.ia64 | 1 + debian/vars.kfreebsd-amd64 | 1 + debian/vars.kfreebsd-i386 | 1 + debian/vars.m68k | 1 + debian/vars.mips | 1 + debian/vars.mips64 | 1 + debian/vars.mips64el | 1 + debian/vars.mipsel | 1 + debian/vars.powerpc | 1 + debian/vars.powerpcspe | 1 + debian/vars.ppc64 | 1 + debian/vars.ppc64el | 1 + debian/vars.s390 | 1 + debian/vars.s390x | 1 + debian/vars.solaris-i386 | 1 + debian/vars.sparc | 1 + debian/vars.sparc64 | 1 + debian/watch | 36 + debian/xmerge-javadoc.in | 7 + ...d2df8893241173de1d16b6034c0-swingExSrc.zip | Bin 0 -> 9796 bytes ...ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip | Bin 0 -> 1521926 bytes ...59eafb2677d7ff386a023bc40-xsltml_2.1.2.zip | Bin 0 -> 23150 bytes tarballs/dtoa-20180411.tgz | Bin 0 -> 48893 bytes tarballs/pdfium-4137.tar.bz2 | Bin 0 -> 7198680 bytes ...6e1c2a5454148adb516f0f833483b5a0353.tar.xz | Bin 0 -> 8335144 bytes 450 files changed, 12184 insertions(+) create mode 100644 debian/README create mode 100644 debian/README.Debian create mode 100644 debian/README.Debian-source create mode 100644 debian/README.qa create mode 100644 debian/branding/progress.conf create mode 100644 debian/bug-presubj create mode 100644 debian/changelog create mode 100644 debian/control create mode 100644 debian/control.evolution.in create mode 100644 debian/control.firebird.in create mode 100644 debian/control.fonts.in create mode 100644 debian/control.gtk3.in create mode 100644 debian/control.help.in create mode 100644 debian/control.in create mode 100644 debian/control.kf5.in create mode 100644 debian/control.lang.in create mode 100644 debian/control.librelogo.in create mode 100644 debian/control.lokit.in create mode 100644 debian/control.mediawiki.in create mode 100644 debian/control.nlpsolver.in create mode 100644 debian/control.plasma.in create mode 100644 debian/control.postgresql.in create mode 100644 debian/control.qt5.in create mode 100644 debian/control.reportbuilder.in create mode 100644 debian/control.sdk.in create mode 100644 debian/control.test-packages.in create mode 100644 debian/control.transitionals.in create mode 100644 debian/control.ure.in create mode 100644 debian/copyright create mode 100644 debian/gir1.2-lokdocview-0.1.maintscript create mode 100644 debian/libjuh-java.lintian-overrides create mode 100644 debian/libjuh-java.poms create mode 100644 debian/libjurt-java.lintian-overrides create mode 100644 debian/libjurt-java.poms create mode 100644 debian/liblibreofficekitgtk.links create mode 100644 debian/liblibreofficekitgtk.maintscript create mode 100644 debian/libofficebean-java.poms create mode 100644 debian/libreoffice-avmedia-backend-gstreamer.maintscript create mode 100644 debian/libreoffice-base-core.maintscript create mode 100644 debian/libreoffice-base-drivers.NEWS create mode 100644 debian/libreoffice-base-drivers.maintscript create mode 100644 debian/libreoffice-base-nogui.bug-control create mode 100644 debian/libreoffice-base-nogui.mime create mode 100644 debian/libreoffice-base-nogui.ucf create mode 100644 debian/libreoffice-base.NEWS create mode 100644 debian/libreoffice-base.bug-control create mode 100644 debian/libreoffice-base.lintian-overrides create mode 100644 debian/libreoffice-base.maintscript create mode 100644 debian/libreoffice-base.manpages create mode 100644 debian/libreoffice-base.mime create mode 100644 debian/libreoffice-base.preinst.in create mode 100644 debian/libreoffice-base.ucf create mode 100644 debian/libreoffice-calc-nogui.lintian-overrides create mode 100644 debian/libreoffice-calc-nogui.ucf create mode 100644 debian/libreoffice-calc.bug-control create mode 100644 debian/libreoffice-calc.lintian-overrides create mode 100644 debian/libreoffice-calc.maintscript create mode 100644 debian/libreoffice-calc.manpages create mode 100644 debian/libreoffice-calc.mime create mode 100644 debian/libreoffice-calc.ucf create mode 100644 debian/libreoffice-common.bug-control create mode 100644 debian/libreoffice-common.docs create mode 100644 debian/libreoffice-common.links.in create mode 100644 debian/libreoffice-common.lintian-overrides create mode 100644 debian/libreoffice-common.maintscript create mode 100644 debian/libreoffice-common.manpages create mode 100644 debian/libreoffice-common.postinst.in create mode 100644 debian/libreoffice-common.postrm.in create mode 100644 debian/libreoffice-common.triggers.in create mode 100644 debian/libreoffice-common.ucf create mode 100644 debian/libreoffice-core-nogui.bug-control create mode 100755 debian/libreoffice-core-nogui.bug-script.in create mode 100644 debian/libreoffice-core-nogui.lintian-overrides create mode 100644 debian/libreoffice-core.bug-control create mode 100755 debian/libreoffice-core.bug-script.in create mode 100644 debian/libreoffice-core.lintian-overrides create mode 100644 debian/libreoffice-core.maintscript create mode 100755 debian/libreoffice-core.postrm.in create mode 100644 debian/libreoffice-dev-common.maintscript create mode 100644 debian/libreoffice-dev-doc.links create mode 100644 debian/libreoffice-dev.lintian-overrides create mode 100644 debian/libreoffice-dev.maintscript create mode 100644 debian/libreoffice-draw-nogui.bug-control create mode 100644 debian/libreoffice-draw-nogui.mime create mode 100644 debian/libreoffice-draw-nogui.ucf create mode 100644 debian/libreoffice-draw.bug-control create mode 100644 debian/libreoffice-draw.lintian-overrides create mode 100644 debian/libreoffice-draw.maintscript create mode 100644 debian/libreoffice-draw.manpages create mode 100644 debian/libreoffice-draw.mime create mode 100644 debian/libreoffice-draw.ucf create mode 100644 debian/libreoffice-evolution.bug-control create mode 100644 debian/libreoffice-evolution.maintscript create mode 100644 debian/libreoffice-evolution.ucf create mode 100644 debian/libreoffice-gnome.maintscript create mode 100644 debian/libreoffice-gnome.ucf create mode 100644 debian/libreoffice-gtk3.maintscript create mode 100644 debian/libreoffice-help-ca-valencia.maintscript create mode 100644 debian/libreoffice-help-ca.maintscript create mode 100644 debian/libreoffice-help-common.links create mode 100644 debian/libreoffice-help-common.maintscript create mode 100644 debian/libreoffice-help-cs.maintscript create mode 100644 debian/libreoffice-help-da.maintscript create mode 100644 debian/libreoffice-help-de.maintscript create mode 100644 debian/libreoffice-help-dz.maintscript create mode 100644 debian/libreoffice-help-el.maintscript create mode 100644 debian/libreoffice-help-en-gb.maintscript create mode 100644 debian/libreoffice-help-en-us.maintscript create mode 100644 debian/libreoffice-help-es.maintscript create mode 100644 debian/libreoffice-help-et.maintscript create mode 100644 debian/libreoffice-help-eu.maintscript create mode 100644 debian/libreoffice-help-fi.maintscript create mode 100644 debian/libreoffice-help-fr.maintscript create mode 100644 debian/libreoffice-help-gl.maintscript create mode 100644 debian/libreoffice-help-hi.maintscript create mode 100644 debian/libreoffice-help-hu.maintscript create mode 100644 debian/libreoffice-help-id.maintscript create mode 100644 debian/libreoffice-help-it.maintscript create mode 100644 debian/libreoffice-help-ja.maintscript create mode 100644 debian/libreoffice-help-km.maintscript create mode 100644 debian/libreoffice-help-ko.maintscript create mode 100644 debian/libreoffice-help-nl.maintscript create mode 100644 debian/libreoffice-help-om.maintscript create mode 100644 debian/libreoffice-help-pl.maintscript create mode 100644 debian/libreoffice-help-pt-br.maintscript create mode 100644 debian/libreoffice-help-pt.maintscript create mode 100644 debian/libreoffice-help-ru.maintscript create mode 100644 debian/libreoffice-help-sk.maintscript create mode 100644 debian/libreoffice-help-sl.maintscript create mode 100644 debian/libreoffice-help-sv.maintscript create mode 100644 debian/libreoffice-help-tr.maintscript create mode 100644 debian/libreoffice-help-vi.maintscript create mode 100644 debian/libreoffice-help-zh-cn.maintscript create mode 100644 debian/libreoffice-help-zh-tw.maintscript create mode 100644 debian/libreoffice-help.lintian-overrides.in create mode 100644 debian/libreoffice-impress-nogui.bug-control create mode 100644 debian/libreoffice-impress-nogui.mime create mode 100644 debian/libreoffice-impress-nogui.ucf create mode 100644 debian/libreoffice-impress.bug-control create mode 100644 debian/libreoffice-impress.lintian-overrides create mode 100644 debian/libreoffice-impress.maintscript create mode 100644 debian/libreoffice-impress.manpages create mode 100644 debian/libreoffice-impress.mime create mode 100644 debian/libreoffice-impress.ucf create mode 100644 debian/libreoffice-java-common.maintscript create mode 100644 debian/libreoffice-kde5.maintscript create mode 100644 debian/libreoffice-kf5.maintscript create mode 100644 debian/libreoffice-l10n-af.maintscript create mode 100644 debian/libreoffice-l10n-am.maintscript create mode 100644 debian/libreoffice-l10n-ar.maintscript create mode 100644 debian/libreoffice-l10n-as.maintscript create mode 100644 debian/libreoffice-l10n-ast.maintscript create mode 100644 debian/libreoffice-l10n-be.maintscript create mode 100644 debian/libreoffice-l10n-bg.maintscript create mode 100644 debian/libreoffice-l10n-bn.maintscript create mode 100644 debian/libreoffice-l10n-br.maintscript create mode 100644 debian/libreoffice-l10n-bs.maintscript create mode 100644 debian/libreoffice-l10n-ca.maintscript create mode 100644 debian/libreoffice-l10n-cs.maintscript create mode 100644 debian/libreoffice-l10n-cy.maintscript create mode 100644 debian/libreoffice-l10n-da.maintscript create mode 100644 debian/libreoffice-l10n-de.maintscript create mode 100644 debian/libreoffice-l10n-dz.maintscript create mode 100644 debian/libreoffice-l10n-el.maintscript create mode 100644 debian/libreoffice-l10n-en-gb.maintscript create mode 100644 debian/libreoffice-l10n-en-us.maintscript create mode 100644 debian/libreoffice-l10n-en-za.maintscript create mode 100644 debian/libreoffice-l10n-eo.maintscript create mode 100644 debian/libreoffice-l10n-es.maintscript create mode 100644 debian/libreoffice-l10n-et.maintscript create mode 100644 debian/libreoffice-l10n-eu.maintscript create mode 100644 debian/libreoffice-l10n-fa.maintscript create mode 100644 debian/libreoffice-l10n-fi.maintscript create mode 100644 debian/libreoffice-l10n-fr.maintscript create mode 100644 debian/libreoffice-l10n-ga.maintscript create mode 100644 debian/libreoffice-l10n-gd.maintscript create mode 100644 debian/libreoffice-l10n-gl.maintscript create mode 100644 debian/libreoffice-l10n-gu.maintscript create mode 100644 debian/libreoffice-l10n-gug.maintscript create mode 100644 debian/libreoffice-l10n-he.maintscript create mode 100644 debian/libreoffice-l10n-hi.maintscript create mode 100644 debian/libreoffice-l10n-hr.maintscript create mode 100644 debian/libreoffice-l10n-hu.maintscript create mode 100644 debian/libreoffice-l10n-id.maintscript create mode 100644 debian/libreoffice-l10n-in.lintian-overrides create mode 100644 debian/libreoffice-l10n-in.maintscript create mode 100644 debian/libreoffice-l10n-is.maintscript create mode 100644 debian/libreoffice-l10n-it.maintscript create mode 100644 debian/libreoffice-l10n-ja.maintscript create mode 100644 debian/libreoffice-l10n-ka.maintscript create mode 100644 debian/libreoffice-l10n-kk.maintscript create mode 100644 debian/libreoffice-l10n-km.maintscript create mode 100644 debian/libreoffice-l10n-kmr.maintscript create mode 100644 debian/libreoffice-l10n-kn.maintscript create mode 100644 debian/libreoffice-l10n-ko.maintscript create mode 100644 debian/libreoffice-l10n-lt.maintscript create mode 100644 debian/libreoffice-l10n-lv.maintscript create mode 100644 debian/libreoffice-l10n-mk.maintscript create mode 100644 debian/libreoffice-l10n-ml.maintscript create mode 100644 debian/libreoffice-l10n-mn.maintscript create mode 100644 debian/libreoffice-l10n-mr.maintscript create mode 100644 debian/libreoffice-l10n-nb.maintscript create mode 100644 debian/libreoffice-l10n-ne.maintscript create mode 100644 debian/libreoffice-l10n-nl.maintscript create mode 100644 debian/libreoffice-l10n-nn.maintscript create mode 100644 debian/libreoffice-l10n-nr.maintscript create mode 100644 debian/libreoffice-l10n-nso.maintscript create mode 100644 debian/libreoffice-l10n-oc.maintscript create mode 100644 debian/libreoffice-l10n-om.maintscript create mode 100644 debian/libreoffice-l10n-or.maintscript create mode 100644 debian/libreoffice-l10n-pa-in.maintscript create mode 100644 debian/libreoffice-l10n-pl.maintscript create mode 100644 debian/libreoffice-l10n-pt-br.maintscript create mode 100644 debian/libreoffice-l10n-pt.maintscript create mode 100644 debian/libreoffice-l10n-ro.maintscript create mode 100644 debian/libreoffice-l10n-ru.maintscript create mode 100644 debian/libreoffice-l10n-rw.maintscript create mode 100644 debian/libreoffice-l10n-si.maintscript create mode 100644 debian/libreoffice-l10n-sk.maintscript create mode 100644 debian/libreoffice-l10n-sl.maintscript create mode 100644 debian/libreoffice-l10n-sr.maintscript create mode 100644 debian/libreoffice-l10n-ss.maintscript create mode 100644 debian/libreoffice-l10n-st.maintscript create mode 100644 debian/libreoffice-l10n-sv.maintscript create mode 100644 debian/libreoffice-l10n-ta.maintscript create mode 100644 debian/libreoffice-l10n-te.maintscript create mode 100644 debian/libreoffice-l10n-tg.maintscript create mode 100644 debian/libreoffice-l10n-th.maintscript create mode 100644 debian/libreoffice-l10n-tn.maintscript create mode 100644 debian/libreoffice-l10n-tr.maintscript create mode 100644 debian/libreoffice-l10n-ts.maintscript create mode 100644 debian/libreoffice-l10n-ug.maintscript create mode 100644 debian/libreoffice-l10n-uk.maintscript create mode 100644 debian/libreoffice-l10n-uz.maintscript create mode 100644 debian/libreoffice-l10n-ve.maintscript create mode 100644 debian/libreoffice-l10n-vi.maintscript create mode 100644 debian/libreoffice-l10n-xh.maintscript create mode 100644 debian/libreoffice-l10n-za.lintian-overrides create mode 100644 debian/libreoffice-l10n-za.maintscript create mode 100644 debian/libreoffice-l10n-zh-CN.maintscript create mode 100644 debian/libreoffice-l10n-zh-TW.maintscript create mode 100644 debian/libreoffice-l10n-zh-cn.maintscript create mode 100644 debian/libreoffice-l10n-zh-tw.maintscript create mode 100644 debian/libreoffice-l10n-zu.maintscript create mode 100644 debian/libreoffice-l10n.ucf.in create mode 100644 debian/libreoffice-librelogo.ucf create mode 100644 debian/libreoffice-math-nogui.bug-control create mode 100644 debian/libreoffice-math-nogui.mime create mode 100644 debian/libreoffice-math-nogui.ucf create mode 100644 debian/libreoffice-math.bug-control create mode 100644 debian/libreoffice-math.lintian-overrides create mode 100644 debian/libreoffice-math.maintscript create mode 100644 debian/libreoffice-math.manpages create mode 100644 debian/libreoffice-math.mime create mode 100644 debian/libreoffice-math.ucf create mode 100644 debian/libreoffice-mysql-connector.maintscript create mode 100755 debian/libreoffice-nlpsolver.bug-script.in create mode 100644 debian/libreoffice-nlpsolver.lintian-overrides create mode 100644 debian/libreoffice-officebean.maintscript create mode 100644 debian/libreoffice-plasma.maintscript create mode 100644 debian/libreoffice-qt5.maintscript create mode 100644 debian/libreoffice-report-builder-bin.maintscript create mode 100644 debian/libreoffice-report-builder.bug-control create mode 100644 debian/libreoffice-report-builder.maintscript create mode 100644 debian/libreoffice-report-builder.ucf create mode 100644 debian/libreoffice-script-provider-bsh.maintscript create mode 100644 debian/libreoffice-script-provider-js.maintscript create mode 100644 debian/libreoffice-script-provider-python.bug-control create mode 100644 debian/libreoffice-script-provider-python.maintscript create mode 100644 debian/libreoffice-sdbc-firebird.NEWS create mode 100644 debian/libreoffice-sdbc-firebird.maintscript create mode 100644 debian/libreoffice-sdbc-hsqldb.maintscript create mode 100644 debian/libreoffice-sdbc-mysql.maintscript create mode 100644 debian/libreoffice-sdbc-postgresql.maintscript create mode 100644 debian/libreoffice-sdbc-postgresql.ucf create mode 100644 debian/libreoffice-style-breeze.maintscript create mode 100644 debian/libreoffice-style-colibre.maintscript create mode 100644 debian/libreoffice-style-elementary.maintscript create mode 100644 debian/libreoffice-style-karasa-jaga.maintscript create mode 100644 debian/libreoffice-style-sifr.maintscript create mode 100644 debian/libreoffice-style-tango.maintscript create mode 100644 debian/libreoffice-subsequentcheckbase.maintscript create mode 100755 debian/libreoffice-wiki-publisher.bug-script.in create mode 100644 debian/libreoffice-wiki-publisher.lintian-overrides create mode 100644 debian/libreoffice-writer-nogui.bug-control create mode 100644 debian/libreoffice-writer-nogui.mime create mode 100644 debian/libreoffice-writer-nogui.ucf create mode 100644 debian/libreoffice-writer.bug-control create mode 100644 debian/libreoffice-writer.lintian-overrides create mode 100644 debian/libreoffice-writer.maintscript create mode 100644 debian/libreoffice-writer.manpages create mode 100644 debian/libreoffice-writer.mime create mode 100644 debian/libreoffice-writer.ucf create mode 100644 debian/libreoffice.bug-control create mode 100644 debian/libreofficekit-data.maintscript create mode 100644 debian/libreofficekit-dev.docs create mode 100644 debian/libridl-java.poms create mode 100644 debian/libuno-cppu3.lintian-overrides create mode 100644 debian/libuno-cppu3.symbols create mode 100644 debian/libuno-cppuhelpergcc3-3.lintian-overrides create mode 100644 debian/libuno-cppuhelpergcc3-3.symbols create mode 100644 debian/libuno-purpenvhelpergcc3-3.lintian-overrides create mode 100644 debian/libuno-purpenvhelpergcc3-3.symbols create mode 100644 debian/libuno-sal3.lintian-overrides create mode 100644 debian/libuno-sal3.symbols create mode 100644 debian/libuno-salhelpergcc3-3.lintian-overrides create mode 100644 debian/libuno-salhelpergcc3-3.symbols create mode 100644 debian/libunoil-java.poms create mode 100644 debian/libunoloader-java.poms create mode 100644 debian/patches/add-access2base-doc.diff create mode 100644 debian/patches/apparmor-allow-java.security.diff create mode 100644 debian/patches/apparmor-cleanups.diff create mode 100644 debian/patches/apparmor-complain.diff create mode 100644 debian/patches/apparmor-mesa.diff create mode 100644 debian/patches/apparmor-opencl.diff create mode 100644 debian/patches/appstream-ignore-startcenter.diff create mode 100644 debian/patches/build-against-shared-lpsolve.diff create mode 100644 debian/patches/cppunit-optional.diff create mode 100644 debian/patches/debian-debug.diff create mode 100644 debian/patches/debian-hardened-buildflags-CPPFLAGS.diff create mode 100644 debian/patches/debian-hardened-buildflags-no-LO-fstack-protector-strong.diff create mode 100644 debian/patches/debian-opt.diff create mode 100644 debian/patches/disable-flaky-tests.diff create mode 100644 debian/patches/disable-java-in-odk-build-examples-on-zero-vm.diff create mode 100644 debian/patches/disable-shortcuts_tab_navigation-uitest.diff create mode 100644 debian/patches/disable-unused-test-programs.diff create mode 100644 debian/patches/disableClassPathURLCheck.diff create mode 100644 debian/patches/do-not-hide-test-output.diff create mode 100644 debian/patches/dont-touch-urd.diff create mode 100644 debian/patches/fix-flaky-bridgetest.diff create mode 100644 debian/patches/fix-internal-hsqldb-build.diff create mode 100644 debian/patches/fix-lo-xlate-lang-nb.diff create mode 100644 debian/patches/fix-system-lpsolve-build.diff create mode 100644 debian/patches/fix-uicheck-tests-on-i386.patch create mode 100644 debian/patches/help-msg-add-package-info.diff create mode 100644 debian/patches/hide-math-desktop-file.patch create mode 100644 debian/patches/hppa-is-32bit.diff create mode 100644 debian/patches/install-fixes.diff create mode 100644 debian/patches/javadoc-optional.diff create mode 100644 debian/patches/jdbc-driver-classpaths.diff create mode 100644 debian/patches/jurt-soffice-location.diff create mode 100644 debian/patches/make-package-modules-not-suck.diff create mode 100644 debian/patches/mediwiki-oor-replace.diff create mode 100644 debian/patches/mention-java-common-package.diff create mode 100644 debian/patches/no-check-if-root.diff create mode 100644 debian/patches/no-opencl-per-default.diff create mode 100644 debian/patches/no-openssl.diff create mode 100644 debian/patches/no-packagekit-per-default.diff create mode 100644 debian/patches/reportdesign-mention-package.diff create mode 100644 debian/patches/sc-opengl-optional.diff create mode 100644 debian/patches/search-usr-share-for-images.diff create mode 100644 debian/patches/sensible-lomua.diff create mode 100644 debian/patches/series create mode 100644 debian/patches/split-evoab.diff create mode 100644 debian/patches/system-officeotron-and-odfvalidator.diff create mode 100644 debian/patches/use-mariadb-java-instead-of-mysql-java.diff create mode 100644 debian/python3-access2base.links create mode 100644 debian/python3-uno.NEWS create mode 100644 debian/python3-uno.ucf create mode 100755 debian/rules create mode 100755 debian/scripts/fix_component_tarballs.sh create mode 100755 debian/scripts/get_libebook_dep.sh create mode 100755 debian/scripts/gid2pkgdirs.sh create mode 100755 debian/scripts/joinctrl.py create mode 100755 debian/scripts/locale-gen create mode 100755 debian/scripts/move-if-change create mode 100755 debian/scripts/stat_pos.sh create mode 100644 debian/shell-lib-extensions.sh create mode 100644 debian/shell-lib-lool.sh create mode 100644 debian/shlibs.override.icu create mode 100644 debian/shlibs.override.libc create mode 100644 debian/shlibs.override.libcmis create mode 100644 debian/shlibs.override.libetonyek create mode 100644 debian/shlibs.override.liblangtag create mode 100644 debian/shlibs.override.libmwaw create mode 100644 debian/shlibs.override.libodfgen create mode 100644 debian/shlibs.override.librevenge create mode 100644 debian/shlibs.override.libstaroffice create mode 100644 debian/shlibs.override.libvisio create mode 100644 debian/shlibs.override.libwpd create mode 100644 debian/shlibs.override.libwpg create mode 100644 debian/shlibs.override.libwps create mode 100644 debian/shlibs.override.orcus create mode 100644 debian/soffice.sh create mode 100644 debian/source/format create mode 100644 debian/source/include-binaries create mode 100644 debian/source/lintian-overrides create mode 100644 debian/templates/debian-presentation-background.xcf create mode 100644 debian/templates/debian-presentation.otp create mode 100644 debian/templates/soffice-template.desktop.in create mode 100755 debian/tests/access2base-import create mode 100644 debian/tests/control create mode 100755 debian/tests/junit create mode 100755 debian/tests/odk-build-examples create mode 100644 debian/tests/patches/disable-db-tests.diff create mode 100644 debian/tests/patches/java-subsequentcheck-standalone.diff create mode 100644 debian/tests/patches/odk-build-examples-standalone.diff create mode 100644 debian/tests/patches/smoketest-disable-extension-tests.diff create mode 100644 debian/tests/patches/smoketest-standalone.diff create mode 100644 debian/tests/patches/testtools-standalone.diff create mode 100644 debian/tests/patches/uicheck-standalone.diff create mode 100755 debian/tests/pyuno-import create mode 100755 debian/tests/smoketest create mode 100755 debian/tests/test-extension create mode 100755 debian/tests/test-extension-shared create mode 100755 debian/tests/uicheck-cui create mode 100755 debian/tests/uicheck-sc create mode 100755 debian/tests/uicheck-sd create mode 100755 debian/tests/uicheck-sw create mode 100755 debian/tests/uicheck-uitest create mode 100755 debian/tests/uicheck-writerperfect create mode 100755 debian/tests/uno create mode 100755 debian/tests/uno-import create mode 100644 debian/upstream/metadata create mode 100644 debian/upstream/signing-key.asc create mode 100644 debian/ure.bug-script.in create mode 100644 debian/ure.lintian-overrides create mode 100644 debian/vars.alpha create mode 100644 debian/vars.amd64 create mode 100644 debian/vars.arm create mode 100644 debian/vars.arm64 create mode 100644 debian/vars.armel create mode 100644 debian/vars.armhf create mode 100644 debian/vars.hppa create mode 100644 debian/vars.i386 create mode 100644 debian/vars.ia64 create mode 100644 debian/vars.kfreebsd-amd64 create mode 100644 debian/vars.kfreebsd-i386 create mode 100644 debian/vars.m68k create mode 100644 debian/vars.mips create mode 100644 debian/vars.mips64 create mode 100644 debian/vars.mips64el create mode 100644 debian/vars.mipsel create mode 100644 debian/vars.powerpc create mode 100644 debian/vars.powerpcspe create mode 100644 debian/vars.ppc64 create mode 100644 debian/vars.ppc64el create mode 100644 debian/vars.s390 create mode 100644 debian/vars.s390x create mode 100644 debian/vars.solaris-i386 create mode 100644 debian/vars.sparc create mode 100644 debian/vars.sparc64 create mode 100644 debian/watch create mode 100644 debian/xmerge-javadoc.in create mode 100644 tarballs/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip create mode 100644 tarballs/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip create mode 100644 tarballs/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip create mode 100644 tarballs/dtoa-20180411.tgz create mode 100644 tarballs/pdfium-4137.tar.bz2 create mode 100644 tarballs/skia-m84-c1baf6e1c2a5454148adb516f0f833483b5a0353.tar.xz diff --git a/debian/README b/debian/README new file mode 100644 index 00000000000..95a01507981 --- /dev/null +++ b/debian/README @@ -0,0 +1,83 @@ +LibreOffice build system +------------------------ + +Building the packages from source +================================= +Overview: + apt-get source libreoffice + apt-get build-dep libreoffice (to install build dependencies) + cd + debuild + +Changing the build behaviour with DEB_BUILD_OPTIONS +--------------------------------------------------- +These options are supported: + + debug - build with FULL debug symbols. Default is just to build + with SMALL ones since the deb otherwise gets too big + ((>400M, ca. 1GB I-S)) + + ccache - enable the use of ccache during the build. This is highly + recommended if you plan on building the package more than + once, or doing any development on the packages. Be aware + that you need EXTRAPACKAGES="ccache" in /etc/pbuilderrc + when trying to build libreoffice with ccache in + $DEB_BUILD_OPTIONS under pbuilder (this has no effect + on speed, hough because the cache does not persist in + pbuilder) + + parallel= + - enable n projects to be built in parallel. + The log output can get a little confusing, and some projects + may fail still. You need to remove config.status if you + change this value after interrupting a build. + + lang= + - Build only the specified language + + nocheck + - disable run of tests when enabled in rules + + +The targets that are built during the package build +--------------------------------------------------- + +- targets run during the package build - + +unpack - Does prerequisites for the build: packing, unpacking etc. + +build - as the name says + +install - Copy files from debian/tmp/pkg into the correct locations + for the final package layout in debian/libreoffice* + where we need to do that here because it affects arch-dep + and arch-indep stuff and therefore cannot be done in + install-arch / install-indep. + +install-arch - installs arch-dependent stuff into the arch-dep. packages +install-indep - " "-independent " " " "-indep. packages + +langpackgs - Installs the language packgs +helppkgs - Installs the help packages + +maintscripts - Generates the maintainer scripts + +get-orig-source - gets original source tarballs and unpacks them + GIT_BASEURL can be set to a local mirror + GIT_BRANCH is the branch to clone from the repos + GIT_TAG is tag that should be packed + GIT_BRANCH and GIT_TAG can both be master + +Building the package from git master +==================================== +To do a build from git master, do: + mkdir libreoffice-git + cd libreoffice-git + git clone https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice.git debian + ./debian/rules unpack GIT_BRANCH=master GIT_TAG=master SOURCE_TARBALLS=n + dpkg-buildpackage + +Build system file layout +======================== +debian/scripts: + Directory containing various debian-specific build-related scripts. diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 00000000000..1493746d015 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,307 @@ + Readme for libreoffice package for Debian + -------------------------------------------- + +Contents +======== +Introduction +Quick start +Printer setup + Native CUPS support + Non-CUPS systems +Language support + Spellcheck dictionaries, Hyphenation patterns and Thesauri + Help packages +Display and crashing problems + X server crashes +Font problems + Why are the menu fonts smaller than in older versions? + Changing the default user interface font typeface for non-KDE/Gnome desktops +Disabling the splash screen +AppArmor problems +More information about LibreOffice in Debian + + +Introduction +============ +Welcome to the LibreOffice packages for the Debian distribution. These +packages are of the release of LibreOffice with the following +modifications: + + * Packaged as libreoffice-core (architecture-dependent core files), + libreoffice-common (architecture-independent common files), + libreoffice-{calc,writer,draw,impress,base} (the LibreOffice modules) + libreoffice-l10n- and libreoffice-help- and + other subpackages (-filters-* for lesser used filters, -gtk/-gnome/-kde, + ttf-opensymbol for the OpenSymbol font, ...). + + * Integration with other Debian packages: + - Global desktop integration for all users for KDE and Gnome desktops. + Menu entries for all window managers that support the Debian 'menu' + package. + + * Some extra features not yet present in official releases: + - Many of the patches included in the Ximian edition + + * Extra documentation - this README and man pages. + + +Quick start +=========== + +To start using LibreOffice, execute the command + + libreoffice + +as the user which you wish to start LibreOffice as. This will create the +necessary user files in ~/.libreoffice/3 for you. Alternatively, you +can start LibreOffice from the menus, if you have the menu package +installed/use KDE or GNOME. + +Printing +======== + +Printing on CUPS systems +------------------------ +The Debian packages include native CUPS support from version 1.1.1-3. This +is standard in all OpenOffice.org versions since 2.0. +When LibreOffice detects a CUPS system, it will download printer settings for +all CUPS queues, and these can be set from within the printer properties dialog. + +If you wish to add additional filters or print commands, you can add them +using 'spadmin'. Note that the 'Add a printer' option is disabled - you +should add printers using your favourite CUPS frontend. + +When creating a new document, LibreOffice will use the default paper size of +your default CUPS printer queue. If your new documents have the wrong paper +size, please check the configuration of your printer. + +Non-CUPS systems (lpr, lprng, SAL_DISABLE_CUPS=1) +--------------------------------- +There is a tool supplied with LibreOffice for setting up printers. You can +execute this with the command + + /usr/lib/openoffice/program/spadmin + +To change the page size and other default settings on non-CUPS systems, +modify /etc/openoffice/psprint.conf. The settings are documented in there. + +Language support +================ +You can get foreign language support by installing the +libreoffice-l10n- package for your language. You will also need the +'locales' (or belocs-locales-data for some locales, alternatively locales-all +if you want all locales) package installed. +The user interface language is selected according to your locale(1) settings. + +To change the user interface language for all users, run + + dpkg-reconfigure locales + +[ This is not needed when you install locales-all ] + +To change the language for just one user, you must arrange for the LC_MESSAGES +or LANG environment variable to be set. You can list all available locales +with the command 'locale -a'. +For example, to run LibreOffice in German from the command line: + + LANG=de_DE libreoffice + +Spellcheck dictionaries, Hyphenation patterns and Thesauri +---------------------------------------------------------- +Currently, there are dictionaries available for Afrikaans, Arabic, Armenian, +Bulgarian, Catalan, Croatian, Czech, Danish, Dutch, English (AUS/GB/US), +Esperanto, Estonian, Farsi, Finnish, French, Galician, German (DE/CH/AT), +Greek, Hebrew, Hungarian, Irish (Gaeilge), Italian, Kurdish, Latvian, +Lithuanian, Manx Gaelic, Norwegian Bokmal, Norwegian Nynorsk, Polish, +Portuguese, Portuguese (Brazilian), Russian, Scots Gaelic, Slovak, Slovenian, +Spanish, Swahili, Swedish, Thai, Ukrainian and Uzbek. +Dictionaries are packaged as myspell- (or, for newer ones improved +for hunspell hunspell-). + +Currently, there are thesauri available for Czech, English (AUS/GB/US), +German (DE/CH), Italian, Polish and Slovak. +Thesauri are packaged as mythes- + +Currently, there are hyphenation patterns available for English (USA), +Croatian, Estonian, German, Hungarian, Italian, Polish, Slovenian and +Lithuanian. +Hyphenation patterns are packaged as hyphen-. + +Help packages +------------- +Currently, there are localized help packages available for +Bulgarian, Chinese, Czech, Danish, Dutch, English (GB), English (USA), +Estonian, French, Galician, German, Hungarian, Italian, Japanese, Khmer, +Macedonian, Polish, Portuguese (Brazil), Russian, Slovakian, Slovenian and +Spanish and Swedish. +They are packaged as libreoffice-help-. + +Problems +================================ + +Here are some problems that have been reported with this version. If you do +not see your problem here, please check for open bug reports: + + http://bugs.debian.org/debian-openoffice@lists.debian.org + +1. If you are using NFS mounted file systems, you should make sure that locking +is functioning: + + 'Make sure NFS lockd/statd is running on the client, or mount the NFS export + with the 'nolock' option. + + If /usr gets mounted from an initrd, check 'ps' output once the system is + fully booted to ensure that you see a [lockd] kernel process, or an + 'rpc.lockd' / 'rpc.statd' userspace process. + + If not, just issue your mount command again (no need to even -o remount it + seems!) and run /etc/init.d/nfs-common restart.' (Thanks to Gavin Hamill) + + See this mailing list thread for more information: + http://lists.debian.org/debian-openoffice/2004/debian-openoffice-200402/msg00223.html + +X server crash with Matrox cards +-------------------------------- +If your X server is using the mga driver, you may find that your X server +crashes. You can work around this problem by adding this line to the mga +Device section: + + Option "XaaNoScreenToScreenColorExpandFill" + +There is a bug already open against xserver-xfree86 for this problem. Thanks +to Philip Armstrong for this information. + +LibreOffice crash with nVidia cards +-------------------------------------- +It seems that LibreOffice can trigger some obscure bugs in the X server +drivers for Nvidia cards too, especially if you have more than one processor. +Try updating your drivers to the latest version. + +Moreover LibreOffice may hang and takes X with it when RenderAccel +is enabled when using the proprietary nVidia Drivers. Disabling this option +helps then. + +Font problems +============= + +Why are the menu fonts smaller than in older versions? +------------------------------------------------------ +This is caused by a change in the way LibreOfffice interprets your X server DPI +setting. +This setting, when correctly configured, means that software can display text +at its true size on the display. + +The official OpenOffice.org version assumes that anyone who has their X server +configured with a DPI of less than 96 has not actually configured it at all, +and sets it back to 96. Unfortunately, this has the side effect that +displays with a lower DPI setting, such as some LCD laptop displays, cannot +display the page at its true size. + +So you can fix this by correctly setting the DPI for your X server. Gnome +users will find that it is set to 96 DPI by default; others may need to edit +their X server configuration. + +The best way to get the correct DPI setting is to add a 'DisplaySize' entry to +the Monitor section. From the XF86Config-4 man page: + + DisplaySize width height + This optional entry gives the width and height, in millimetres, of the + picture area of the monitor. If given this is used to calculate the + horizontal and vertical pitch (DPI) of the screen. + +If you set this value correctly, X will calculate and use the correct DPI +setting, even if you use several different display resolutions. + +From Nikita V. Youshchenko : + +- Many display manager configurations pass the option "-dpi 100" to the X + server by default, overriding any autodetected DPI. This has to be removed + for DisplaySize to work. The file that you need to edit varies depending on + the way your X server is started: + xdm: /etc/X11/xdm/Xservers + kdm: /etc/kde3/kdm/Xservers + gdm: /etc/gdm/gdm.conf + startx: /etc/X11/xinit/xserverrc + +- Gnome's gconf overrides the autodetected DPI, by setting Xft.dpi to a value + entered in configuration dialog, 96 by default. I don't know what is + the clean fix for this. Perhaps it should be fixed on the Gnome side. + +From Juergen Kreileder :> + +- Note that with most recent graphics cards and monitors XFree86 is able to + get the monitor size (and thus the correct dpi value) through ddc. + (**) NVIDIA(0): Validated modes for display device DFP-0: + (**) NVIDIA(0): Default mode "1600x1200": 189.0 MHz, 87.5 kHz, 70.0 Hz + (II) NVIDIA(0): Virtual screen size determined to be 1600 x 1200 + (--) NVIDIA(0): Display dimensions: (410, 310) mm + (--) NVIDIA(0): DPI set to (99, 98) + (That's with the proprietary NVIDIA drivers but other XFree86 drivers have + that support too.) + +If you use KDE or Gnome, LibreOffice will use the same font face and size as +your desktop environment. If you use another window manager, you can either +let it pick a default font itself, or change the font to be used (see next +section), or set the OOO_FORCE_DESKTOP environment variable to +kde (for kde3)/kde4 or gnome, to use KDE or Gnome settings respectively. + +Changing the default user interface font typeface for non-KDE/Gnome desktops +---------------------------------------------------------------------------- +If you do not want to use KDE or Gnome settings and want to change font sizes +within LibreOffice, you can configure the user interface font as follows: + +- Font size - + +You can change the font scaling using the user interface: + + Tools Menu -> Options -> View -> Scale + +- Font typeface - + +You can change the default font typeface by replacing it with a different font +installed on your system. This can be done using the font replacement function. +Choose Tools - Options - LibreOffice - Font Replacement to access this +function. + +To change the font of the LibreOffice user interface, you have to replace +the default font "Andale Sans UI" with another font and mark the "always" +setting for this replacement. "Andale Sans UI" is not selectable and has to be +typed in. The replacement font has to be a font which supports the requested +locale ( e.g for Korean language the replacement font has to be a font +including Korean characters). + +Refer to the LibreOffice Help for a detailed explanation of the font +replacement dialog. + +Disabling the splash screen +=========================== +If you don't like the splash screen staying in front of other windows while +LibreOffice is loading, you can disable it by editing +/etc/openoffice/sofficerc. Change Logo=1 to Logo=0. + +AppArmor problems +================= + +LibreOffice in Debian ships with AppArmor profiles: + + /etc/apparmor.d/usr.lib.libreoffice.* + +To debug issues with these AppArmor profiles, see: + + https://wiki.debian.org/AppArmor/Debug + +If you are using custom settings such as a custom env:UserInstallation +directory, you may need to adjust them to match your local setup. +In this example, you would need to add your custom +env:UserInstallation to @{libo_user_dirs} in the +usr.lib.libreoffice.program.soffice.bin profile. + +More information about LibreOffice in Debian +=============================================== +Please read the official README.gz (in the same directory as this file), too. + +If you have questions, either post to our the mailing list: + + http://lists.debian.org/debian-openoffice + +The Debian LibreOffice team diff --git a/debian/README.Debian-source b/debian/README.Debian-source new file mode 100644 index 00000000000..7b9f523b2fd --- /dev/null +++ b/debian/README.Debian-source @@ -0,0 +1,82 @@ +Package directory modes +======================= +The packages can be built directly from a set of git checkouts (vcs mode), +or from a set of release tarballs (tarball mode). + +Vcs mode is useful if you want to work on libreoffice during the development +cycle. You can check out the latest sources and track them while you make +changes. + +Tarball mode is used to prepare packages of official libreoffice releases +from the tarballs created by upstream. + +Source package creation steps for tarball mode +============================================== +The .orig.tar.gz consists of the (separate) source tarballs available +from The Document Foundation from +http://download.documentfoundation.org/libreoffice/src/ + +or base on an old version and add/remove the files manually and/or symlink +to the old version if this didn't change - see git diff of download.lst. This +is even better given we probably want to add only needed stuff there, and not +all tarballs (most of those we don't use) + +See the "Format: 3.0 (quilt)" section dpkg-source(1) for more details. + +Package directory layout - vcs mode +=================================== + +In vcs mode we are working directly from checkouts of the libreoffice sources. + +We pull in sources to these places: + + "top" directory - checkout of LO's "core" repo + debian - git packaging repository from pkg-openoffice project on alioth + helpcontent2 - checkout of LO's "help" repo (git submodule) + translations - checkout of LO's "translations" repo (git submodule) + tarballs - see above in tarball mode + +$ git clone git://gerrit.libreoffice.org/core +$ cd core +$ git submodule init + +(maybe remove dictionaries again, see .git/config, we don't need it here.) + +./g pull -r (git pull -r, but also does the necessary steps for the submodules) + +For tarballs/, see above + diff --git a/debian/README.qa b/debian/README.qa new file mode 100644 index 00000000000..3da75a9fea6 --- /dev/null +++ b/debian/README.qa @@ -0,0 +1,59 @@ +LibreOffice QA Tools + +smoketest +========= + +smoketest executes a set of macros that create a minimal document in +each of LibreOffice's applications, tests cut&paste and +saving/loading in various formats. + +Invoke it as oosmoketest. + +This program manipulates the LibreOffice user configuration, USE IT +WITH A DEDICATED USER ACCOUNT if you value your settings. + +qadevOOo +======== + +qadevOOo is a framework for executing tests for the LibreOffice +API. It is documented at +http://qa.openoffice.org/qadevOOo_doc/user-guide.html + +Predefined properties files exist in /usr/lib/openoffice/qadevOOo. + +Invoke it like e.g: + + ootestapi -ini /usr/lib/openoffice/qadevOOo/java.props -o sd.SdMasterPage + +That properties files specify AppExecutionCommand, i.e. an office will +be started if necessary. Some tests, however seem to work better if +the office was started manually, as written in the user guide. + + /usr/lib/openoffice/program/soffice "-accept=socket,host=localhost,port=8100;urp;" + +Use this invocation and not ooffice to prevent interference with the +quickstarter code. + +testtool +======== + +testtool is a framework for executing tests by automating actions in +LibreOffice's user interface. It is documented at +http://qa.openoffice.org/qatesttool/index.html + +Test scripts for testtool are available in the +libreoffice-qa-ui-tests package. + +Start it as ootesttool. + +If you're starting it for the first time, create a profile in +Extras->Settings where you specify the location of test scripts and +output path for log files. The default values point to the scripts +from the libreoffice-qa-ui-tests package, so simply giving a name +to the profile and pressing the "New" button is enough. + +Then open a test script and press F5 to start the test. + +Some test scripts may change your LibreOffice user +configuration. USE IT WITH A DEDICATED USER ACCOUNT if you value your +settings. diff --git a/debian/branding/progress.conf b/debian/branding/progress.conf new file mode 100644 index 00000000000..59ff72ce41d --- /dev/null +++ b/debian/branding/progress.conf @@ -0,0 +1 @@ +PROGRESSBARCOLOR=215,7,81 diff --git a/debian/bug-presubj b/debian/bug-presubj new file mode 100644 index 00000000000..602de78b9f7 --- /dev/null +++ b/debian/bug-presubj @@ -0,0 +1,60 @@ +Reporting a bug against LibreOffice +-------------------------------------- +I) Make sure it's a LibreOffice bug after all: #398923 and its friends for + example are not. + Set the Version: header right. If you found a bug in a specific version, + set that as version:, even if you in the meanwhile upgraded. If you are on + an up-to-date version and tried old versions and they have the bug, too, set + the Version: header to the earliest version you found it in (of course, if + versions inbetween don't have the bug use the version in which it reappeared + and sustained to the current version) + +II) Check on the BTS (http://bugs.debian.org/src:libreoffice) whether the + bug already is reported. Do *NOT* report a new one then. For judging whether + it's already reported, read *ALL* the bugs, think, try and use common sense. + +III) If you have crashes with a document, try another one. If only that or + similar docs causes problems please attach THIS (or a similar type one + causing it). Otherwise, don't file a bug, we can't look at it anyway. + +IV) Please attach more info if possible (see + https://wiki.documentfoundation.org/QA/BugReport/Debug_Information#GNU.2FLinux). + Install libreoffice-*-dbgsym or libreoffice-dbg before doing this (and maybe + the packages it Recommends and/or -dbgsym/-dbg of the libraries LO depends + on). + Please note that those *-dbgsym packages are not in the main archive; you + need to add the debug archive for that. + See https://wiki.debian.org/AutomaticDebugPackages + Please also read /usr/share/doc/libreoffice-common/README.gz for common + problems ("Problems During Program Startup") + If you have NFS/Samba/... file locking problems (i.e. files opened + read-only when they should be read-write), also see the "File Locking" + section in above file. + +V) If the bug is also in the version you can get from www.libreoffice.org, file + it there (see https://wiki.documentfoundation.org/QA/BugReport) in the first + place. If you really think this also should be a bug in the Debian BTS + (because it's (release-)critical or otherwise important) please file a bug + there too *BUT* note the TDF bug number in the bug or mark it forwarded + yourself if you can. Especially this is for feature requests. + If you tested other LibreOffice packages and the bug is (not) in version + foo from bar, mention that, too. + +VI) Only report bugs on completely up-to-date systems. Don't file bugs on a + obsolete version and neither on sid/testing systems really old. If bugs + got fixed in sid, it doesn't make sense to file them anymore. (Exception + is security bugs or really critical bugs which should be get fixed in + stable.) When you think a dependency is missing/wrong/too lax please be + *sure* that this is the case before reporting it. Most times it isn't. + Use common sense and the bug severities for judging here. When you think + you have an up-to-date system, check whether you really have one. + (And do a dist-upgrade, try to reproduce the bug again). + Also don't report bugs on broken mix systems unless you are sure about the + dependencies/conflicts (see above). + +VII) Please give as much info as possible (installed OOo packages, installed + extensions, "special" configs, additions, changes, whatever). Better too + much than too less. (See #396225 for example which was caused by an + unsupportable, non-free extension) + +Thanks. diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000000000000000000000000000000000000..d3ac80fdbeae184d70a2316fbdd36a6f98617563 GIT binary patch literal 621910 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

+d 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

06w$fBTrI zH9w{ocDTTGL!=_Y@L>qE`|Sg+{Zj5BKd_wx3+1p^ZOws&LN_ne@$eO9dq`ZazOZ0E zm`@qQ^gl6xsJqbnqa1p!T{8!S5{1x4R}SA})&3;3W~Aj(y{j)BW*{8 z0+DL}@S0928-Jo9`n&SKYa+6}B2wVYFAg;y$P??A;mLcWCuWmD1U-vuD}o$+wiW^- zqTm^fU@-Z1aEb#ax1(@4iO|SPe^XBIZJ@zh9fo@+ZSVV~NbCD_topVKz2e~CBO2nU zr{hl=%Wx$1vax{{<^)ZX!|1V;=opFUW7q@7zw}>2)joAnq!Jk$o#Ph5?;)huPfd~; z=^h%*qmcv}3!ju{HwMzgso|@k zYAA5Ikk>-$YQFJ|d=iMtJ`3$I3H-kA_dq@2cLhBU#=a0mB^obW-b}VGNiZfRk{#8a|ZK&)_GvQMKkD4mqWMN#e~Zv zMU$MD;z0@Z*O41$r{#Oyiu_0}N9XH{7skmIvmCcwuvVMAWJoX^j)v^cKwF2PSQJor z0#dsMf&4ZE@Oe5ij>^%;MJd<#n4K(4E04eXbJwnwyLhOB7(bJmb^<#%zhafsZspLoTh{gY`RV(zOq{)?{ukPa?>F_V z;lA&N4|1CRlD_9kw5OA!Ad`+n;8F~nT*xS0$6N9DOZ**%u;f8Je-+EPwBwtajb>~m zuY=>VMn5{4g--t~rgB50pE8kzZU}RPL@GEC$rs`{9dblFuONN4Ce~jN_5s(ronOeQ z&Hjcf5on-tD0+B*yd1}3H%scwG0MHBtEFZ9sGL&sTi+$RPaExI@M`ex{2`gXcXegi z6FEE-q6)WZ?W2Nc8ASu1tFolRjpd(^+J3PQZVpSAHq?FmFnB9bYrgo>@!*zbH;Xw( zoUekPTxwp>S|%eu9i9#z9QVd!6*5D1xS{8nod*SXQ$V`BO+=&9Z8Y@-4GauquRb zN`Ge>E!F-|91W$4eV-ql$>Qp(P*0>VPA#p_9g-E3%t0ooOLlLU^U5avRM&?dqvWML zcydn2;Rs9ZkQ0K_ISUKWapTRcTg`?9US$K;-12!qDx!p)r{t=a@M#cFA0UAf{LH!L zsboFN*8kg=FP{TN@*WdmRx3=#M{7gLO8@UfAE$MmE};PlVNw~yYiSv0TyUe=wzd2c zUW76go?{wX;v5p@R$k9$=Pw5TXt)0O&Y(hctO$IPpD_D}rzBt4J(d6b?f{ya&~Gk>1Nvzh*B zua&;<`}h5Qta|J=?KvmQ2HU6N5()X*{pzsL4s|qpws&}-Dy9trJdSQcFxK^vY;4LL znwj7chKUE^)SAjLj*HDrrA9=bd)@WaiAVT&6QSP-*QZ4Lh-8WL@2w9TGur6Jo_N^1 z&CT`wcUvb18@OUmXXaR5`cT>F2L@?`@me))@8x=c=AeV38p!n&_sD#@5L46niMNnH zB{6;(xe1nDP@3x)`OFoim*W@H>32wXNR#F=z%JyX=qwpWgAH_!8s%!KQiI$qHZP4t z#eid)!J@&aWjD&3eLfrVuNfln!0Z3shSW&x{x^)+^$kXSoF6XE4pD$p z`-P11UqKW_|tcV zh{e#t>FtYU_^7}1?ONd2U*0v&7sX000}sa>#F@OGhtE78&)~a(g#(M^)r_&>NY1ka zw7S__E*iy&hYRE8UrUkfyzGd@V;8M#M#5bUJ~n!4+Pppdr5IBhyOIDAYRnK#IYvy$WYI0(EO>B?6fluWn9{^%gtg?dk!L~(uU`v?{ z&#bhk(reBojWs-ZM`j3;7n@~D{^z;CHQvN7SH!%F!P$!E$~wdjW~8C4Ku`c_Rkm#ox;*nrvX+a3!e(VXWk?`+s>Np@aut&Oq_ z^1N!T|9*?eyGEk;yOUni`LhkP78=kVo18wfTg)ZCK$nxAx@{@mqqVcTxouCTO!2to zkFwOZcJ%M|+GMTOqQYcnZL-s_ux!n;Owf zKj$K!&pr$cvd_!oW)1#%xlpasPjP;eJ_&aNcBA+jcGr$Ca0(&n z%zXyb=i_swRF9F3>M?vD$dZ68hwf-~`tUveLgJO}S%-UCgneb=E7E?vMe0l=Yz~Pk zow^tFD?`b~vI_-4@Ha{y^Vs%oT7bKP3FN98R#PDVH{aQvYMdWt+#^?A^rl?R3{a+m z$psjXU_n^hI1aw5aeNl_)LtKHuU~ZZb3&H*VebN3nS8=0_l9>TYik|otJ>@$53v5D zN@eyY2b~XNqcFE`xBUlWfdk<%(!TsaPa0!6_&I{ z_QEUfW0+yKn!Fk`i_N`)aDX_zt+Z-Qg3TwkN`!pv2qiLEVM;Tdb#r{q0T`&4e|IW^ z@;qkMoTI*Zbjp1Nq9fTO`}S>C5E}_PVg0gWP3AH*nSXaW+cpx5sfW-$iQUI=+0h-1 zEYcx8dOhIs$75!MCCGlUDf}1kFfU6W8PTrRp}k9QQb+Dg+S<`A0198F#X;&~H{O&( zy1KIQNt6UaeN`;)HmWQCS$>{gGd!lWcB*H?(hnPzeo#w)w2&?v=9PrHV*SRTKQ8vm zGouW#CxfLLyIt6tc-ZG_A6q-i%d}fxkS#ekV^WFFd^~w@dOF|4{CBUucTjKVzuEBS zR*t!5xTdAc3s%hS-wRscyf@9$x4o^mc0_wqGDmUA%o})d*i!PXwM~te{XuAfv=7*krUb2sbvnn zWCA#`*4rbbrw+G_ zOvp}4^XKoh2W#ArhF*!kWRXc^r#;ze9by|NtHO3GlxD6I|9abGQ_Eu2+S%IP6c!mv zyF0x1_1&RzSsK;iHdw;yS-|#mjdgPz9eN%p<#OFzxfOw+*Z!6-Pwa=Ue}wKiC5-A8S7 zk@4lYJ+$mzE~5x+HI+aLa;_NCZKheli(8$`=d+&IZ-}7J+5cG#8_r3ft>KAoV~56F z+K-2}uh=`bjrjZ8lCN!}D%(n|eoJes&k;8)U?*5@=i6DYt(Q90Q$jc8jJvw3-z53B zlk=2S-_E*kiRv5xhE-zB#d$eWJ3GC9&;M1HGeDzq<{rqjXFVP)`&lVst3Wvz05AA~ zKC_a@24uqOBpV?k&RUACOpko-^%9=U6CWX))I8T$kllf*tPHbSxr5)rpRTT^+^VVb z3uLtkSUl`(tF^V(UTZCB|7dwx(wuQk0~mDBLYNn^L+3K(+*q7;kf4LMpfwNa)CBaQ z827A`+a6jQM#t2QH=+SB(WHQ`JTlabt&-kKibpC4eGzE~PhgQYb`j!oHS0+{GR!rF z1Ln-GD=)>XEiD)D?tX8acy|CT>&Byw4gK!Lz5d+`*!iS4-n$UT-}vkPS{(aKI+gY> z_K=i|X-moe83OVQ*)k98pQ|e*1sKx~(w$vO1v@yun7(cuz?VPN6aGaD8Jbcx?p#iL zQ}I11BQKfo6t#`{jIXYwqllNUZrV&Qn1&>c>Vz4c_WC>hm=oLLs3(ii?#TJe$-PsC zd&JJT=-fSFQWw4c-U-8ydWJmfV7*}VYOtL7NC z(aNYZ0_ZR{3G3}Czjp@PL#W{pt+CV5f~Wu#Ldc2?FO3h5Ak44(e-P^s=8tMxjVpt3 zq8n2njd+~a1(=gfDqJ!wf^BNx)@7e7ryct@MExKZyzYB!7$`WXWY|I+m@Fm#%U&Qa9q_FSr6!$SP=Bg>E3jW+qT#A z;ecety=k;~0pL;VQMQG&7wTc0ILw$uQia>M>!FNcZhPZGHTh8sf$=Mg+**nf@}WWq z|Hd@NK45FG3-0>r;2**G0HjnlEtkK5hSaO)FdOS?bIsJO3gzTF{XN}0TwJTkrY(@TC|`0v}d^+RNrJ$GRc8v@8ay8_@1Lr<_l7%ulk0H7;w zNYcH_v^8a%AV;GW(S^Dpds0!zq-4X@%^h_(IoQ@ej9_)sFw3clHIEW@vc68%crYWD z?t>Of5+Y)zeqklpYgw?skZn?1(~Bb|`E8j;3KDp|X`ha;%$jl9 zIya}YLH94uzLzHp?k{q~i4lTPMaA!yR(x=zgwTHpgK_KGQ102|lbN-MXHToMw6Wi- zv0z!Gv(e>**k9^%fzIVWU{fC|siN%qOZe}D@Gc-@k23$|6@bQ>QS^PE%z^@U@PplH{HjB z6V_5b(%t^)TQ2Y{CmFW8eixI>8HX4BUgqDvn`ga$Abkj0NI-?Q1r1b=M8R$Cq@ zH>76oL~@P5cyH_W?eWfNyL}fS$n(#M_X)i%foxGNILqV4rhl`~5TTnE$bS$-MZZhKT^_-tng zCNOQooC9K&gJT=PBm74Np6$E}4PEt3_oco9fRnBUYnrV8ggy+2{fnU*+Qo-~4L(CM z!MH2I1_)Qf4-9pDUUV6Bob|%qvy&?jpY&?>dOI}W(Y?vt5y+Z8%ciR}tIs!PJBw>l zk-ueIuayHUuaw?egwF?1@Dv=e<+=OsqxNacv^hOQBH3?-*l)C7Q0@LQ${XecAt6;W zQanklY?AaZcJE1bDl=`qADlvIBdlTY$imLOZwHNT#C0(Du@@x z$*5`%l_MN74Kra{9NwUWMTzt*C1wO|w?(zzY1+xXkr>`S7b`>w{jPVj*Ydqx&A)WrjN&oIWB;7Ho)(I)nAFQZp3%lUGW0j(A{de|0QrcTjJ`FXvjfp=l*>MJvpoX|YfKNPRTJFI{ogkjs4}PN&nmifnM`Ec5gbX?OYZu)GbTwtv~#wSA1bx)n9%tzkGQh zGl@2XiJAyRQ`@83O@A7>J#>ni5L?H#Z@<^aULX+6#;;zu1gmFchEzoF(S0E!(-25D|xg!gsGK3()+_3e~MjAOlS<0Ol*0uLBX`g6H(q zTYc53UhTZWpn*0e;c9ykj`md}w#~5QyF4}Sz6mqdWAp~ca~q-zuLe2uH8{q$Vw+t= zu{wr9$|hofMGKk0NpuQ1?45}Kp7dUa1<3jBkda=%V78G4kNL|9rZj@OMX^z7UZzN? zK!`^b)=G#r%4>cTUwTp7BA@B~KG zKf(hKvDQdMkE7Az$Y+M#D9hYpy>8W$No#=lH<4Z7^1nDzOQ(Na0a80)c#Um5KC-4M zg)vU+#hVDxK+Z-KHT`qce={Vj>3D)9Jm|Wo7&7jl`+L^dcv}HM2}DRA^RMmj3lcv6 zK4Ku@Ca!xFEzQR6N)C%z_{OpOk8jD8=2zChdc0^^n`7PTP0bjLi-#PnWk&=Vak871 z8wvNUx3RaszIL$F-r3$i{$js-)!9E@<6&>`<#{TX`^`1Y|wTZz-lm|N6Uo2Vb=B?d`wa|LI`uerNBm_Yc1K z{nhVqn|`~$e(*)-_nnRE35D;q_usDR=ED7ro%__hx4*H!b^ogK`;BVXx;&^5s`sbV z-l*R7HYoDftL>|*!w=Qk>#Wi3OGde`e&x@-adH0?XOK)SHDbdZZaseM! z-!EO0_6(<~xiixb)q}b$wgtI0SjygX@6ir+c{dz4UbkD^?e@qmMc)%WGB|Ek52VGw zfE4G0A8BV>HTk(KrCmfM$%rzo4%s*PCMVt5WJOKC_fT2dD;xVz{U|pLp%hdedDH`6 zdzWwqEQ=RM?49j5m9VW=5W=ZVTQDqc;xMa&Bxjq?FK_BSU4C)f9EbBN22<>T-~0-m z)7!EqH5f)t=9r9}ol6~U$0@a@evdilSLtw z-dpFNhpQ`&buNuj`zs1h9Q-t3GRIZ9r?hsDLuV3c z9ORPiVKoqFklmA0y+{#H{` z<<^@abF>0%SQEz9@{(ewzLF|Ue=J&Ersj^|ypVLq+Kjf4kOucQ?Um=3^#QF74h)za z3Vx`>!k`OBzZ8v1Byf#h`kr|&dB{Pr#j)bW_sgD=$aDP7westO)%sPhi#?> zZLu~9a#kZhaX3{j%ns&fJDD17yTou!E$(bzgRHjkh+S)S(6A;SDxHiqrj;R|PR;0v z-Ob4q(K-;wqHs~vK8ezqJt#D91Qm^wPX4j1)}XgGU>Em#>s!7g?hpea`s~a-h7xOL zZc@JOx|Q6u6(zcFlkwroep3-B7^tXLuWKhSG>Rrim#6QY6yS$&A%8`b>6X<8Z5`k0 zFI~@*TOs}EF$P zudqH{NTt5e;TPTZdZsG*=38IyhrO$R@8oV@TFObgJ*daF*FWg2x|2h;nrJD_&k`A5 zW)m?2#>;txcCx8_SSg0|InQ;5oQt9@>a`O`&KmF!obvz79jO|7PyG?^@Ci%O+0O4v z4rX70ft)#M(H8=n-dG11+d6s?6|k?vd~klDg^i+@qwyo+hgtYyyPyOIr9zHpPH$*K zzxu#g;(&|!`9nN%_W1^lXZpfO12Zu~@KYbbW{Z1oPl?o>rx^o0-*c(8HO$5K#5p7= zYCmfn2jGBMG=g)S_4T46)uPuBCbSl-?mUphi{b<#YI1EjQdv}_O;s8IFdYgtn!mr9 zniYSnE#Sjy?+sQs+X0-szal`5g~Q-0w^2Q{TQ&tmSMKx54+7ECuw*o57a$MMfq{uw zX-lwDfqanPn6F)JaVo?D)(b;h9t5@`Ku|<$G(ezcX0`bx=>|+L zdfJ3Z=%lex%d<2}$$g@4woqAeE=m?MO==H#CxxMQHu12Qq)8}hp&;1qhJqN5DuM~7 z!aL*%glBL>x1F86c_$$G7j_QhZTY5qc!9T14h}%{(tx}(h#{NK#VicUSVfK$Q!f`W z$O(=|82XX5Bd~yIn))}o4bA?5`5BX*xL}I9sb>!D6LK-$m@Hn;Sv!g?s?CB~C;5k) z5-{j0dPmeze_b01EFe0gey7u7I@oo^q|Vm$vTFTrC`Cj;w|}Tw2gT#N3Jo}6Ra?uK zNQmf)g(D)*bvk%lLE3F)Tiy9 zi)W>LU;=0}>DZYlsX8L6y*fd^oMektc)Ot)73y0N0n#{G+VdK|J+q(1J>^%U7||Gzz^D_U|4ke`!IwDaaSdtj<7a%k|rvg5f*|6rnw6Z!7Y-g%(Oc&_lgj<2iSONm+IJN+$+b9qEy=4 zsGEgxGGAJpj+S)cyhc4>I^fSoyNL?;m7)LOq z$%(Qq^fz&MUdDWb9pb1Rm0+I5iq-2?7nEOOvD$~C4pKEj-7acty~C0#8q7T}Y4sD& z$5}A5Q4XkF=k=~IF0cTJ3dB>I0`UU&)pHi{)L^w7Y8%iLB!_(F)LIX=e6JLP0U+R-M0PHKD< z=8*L*K&WV>a#)Exa%AL?k+`3J%2{25McRtkP><`!fz8o$V$lzv7#M@Q9T5fiplv^WaL zlUx|&DiL@h$euVLliw+vhOy##dI4#u&~996ZIAbo>ng|8;f$pfFvma0idD1CdsDU8 z7-NZeNNqugm@N@Z)vF7x*V>X-%e&I-k&zZkGEGaD7-+q9m^GF=ovRZFgPnt6%#lQ~ z(Ro8cgrws^k{&ynW*=hIX@?Ap(bCeb#K+|_Zp<_+nen8S7X4LJvv;eh` z^}|qW3ne-?ueb(+Ev=;~bSkSuB%s?&9PXlSC+`$!u27&ne+5>{4QJ?P?~_Uwcl`S+4FT z2ld6%lFs6*>rYAumz_IoX}2Vn=@8#EUY)17$1KgxK7Lw4gUwQn*4&33lICigVu&s7 zAw)Z8Rp_4cGGC}(3Zl0ogyS)S7kL5kJPP%DWsHj=aK!r|84%2G66dif%fz@~JbO6S zvR47%arF)6ikP}qQ~w2uOwxjyG>1^B;Dgpfw`r|--jx-Xk+VdviqGNoj5nYeOoSH;cSlBu+xXVZ6C>@MfxO%fym&!OYpti${K-_##t|o z^=@|hTp_-muh;vn4wJxzEHjjVm0;5%*l~cT(-2oDw3s7BkW10QW!)LIBpaQErNN72 zrUklv8<%ZJ9-2e8wZbHK#(9XUi;ZzsotpL(C@Kr_2aIjHcDI~lqNt_|32k$$bGT>A zA3pphOs4bzGY;Vx{e6t>{V*vLUcpi8ka3Le^>9`j<3PnP{8%msafJ^0Xqb0BlzP*# zO>^dfzS>0@Q7((RY$CHOTE}QC)^cf~lb+cq3W zy{i0RSz9Og%MK^zL|eCKn>a0q3+fn6_IT}n{fhFoGZ1(-zWu;YdhUsI$|1;XQrxVw z%?SYlw!=`J)E#8N9GQolIfklSl~=W_w`|<2lMgvp%TZ}TPCTjZj1?17Fo8X+6J{|b zNvJ$9#Ue7z(djuU1f3E<(o)&u)oG>KO zvEcA|98y7+5R*{4ad8&~Bo@SCEB9nXJFqi{r-|Z@3%xV-JWk}Zi34{b*A2Og#4LW0 zhYL~qiJ!YoTDf#=al?03&svC%3c4Gv4({bu4&72{jL?oyFCiXuZ-`g9;h@4TKd6LU z#t@GsrG2ng{0I@dl@Fp`fSM?T@fy=#9BC+93n_H4or=fBrh*X<$p|#*Y9TP-ww1vlrpkDagn6Yx)Oj^otWxzpZrc2Zc4O-H0V{R2eK@tM+kiJ=(5BN$NHIM zes;_py6aU!^A0X3^;1Inv0_KX)_kLDfO9yn5`9z!n?e!<7v`ciDz5lV$KyM zX{bynh`8kkL?dd(6}JfDz*P~OGduda zQFzK0jfCCjSrl-jehE2|gYWtF*7>`;<}6hBE*XB`U$uGyLG$H-{hiuTs(ujdU!eljk~3kb1heO%XPQ{b^NT{4>g( zswEO*_h))yZCj6aceftdn^wjBJ0u!>cyY*nnr@@rxMyJT;sl3UBA)V_tq9F{;wf`f zXEe5?MCQGy=jDF+c!vnU`!Rk0MUha;h> zAHzcMu2in8fCCEK2he`r+;ICg?`n&I9>rG;R7k{)k0xXyI{(tbk2rHH^;7~_9f>YB zCzczn8&RP-2hgKv-Du1Lf(3B_q>lDN-HSQ;ENvUoJb{pmA!-~7>eru@hY9EYyj_;m z4A4_K{esZVwLanmC=>pYSmLnJ&$KnAd&p<5d~A@`bGtOj$gGBF{TW)IUpB$ke3B=Y z)k-);X@U$M>j`Jr=S^k$9l zq@M2QSvjwW<_A|Atnx%kh>lb5vJOYd4029l0JeC-9xc({=~^pxZ|k6Ul*G(8rD&M! zBF48-H9%tpId0zdR5SeWd@B54Z*Y?Le%k_P?xwJxZIA1?+p=|9&NIYOYA)Ijw#f;= z0w$Vlkny{%b?;Lv(=xBk3=P*Nm&F zD@o(?oc>dm$HJw+3#*S)54iKKC0l_5V7#hZjrAnw6mPduU-_-Kqr-nsZS$=KLH%eA zPJ2hUZ!hnl0S_I9&j~9~_jP<{g=BT6p1bR3<6o7sXW6H>gTr5jvunO4h)DhkoY2oE zt~!o<&3ngcM}yC6ROufgz>|c}kY($0kXZ>~BGnMf5pD)!$`_O@a z+z1t4pw?PjpEpLB80AOmI~ZEPp+!^nB&k5p2&vZ~Jo1hPtFS$jHs=?V>>*LYVQXw0 zb6T?xcA1)(x);`wY zBM3`|1BaW?s>HU0VlMOCRnyyBT9)NP&;k~HmG?&8avqYH-zO5=YZ?7RAm&q{73scT z=!yQ-mzsVxf&Yy_jcsl&WU)CQu8Q8xA;6Dov10s^e!1-CB; zrMU#FTwR14}KVU73ox$+JHDvkORw0MTjWm8tG(ju&0Sy3d)0n?eeKwU4=rdDq}KJ z*B}#XwpuubCy+X#Cd{?&00XuiCdrZ zZXfj!q`cL({$LfWPN=Ql5Iwo3(STf<{A9G4NSx-@K4A?hXt-m|WpvV$EH~D$z)G`$ zY55i3ldLrDSp_U3Z8Qgp=O5;zP0A;qdzB(krYvZ7h~fx?U`ZszowiJN9IfMPq`d># z(TlmFSYvowaV+Z+rk1o^bvs0s9l{T*m##T@AsbA&sCYOPi%JSD7BwTqfgO|?0-A~A zLVn~SUeXnZL>TA@d+i@=>mQq~3d*vZJt1arCr{=**}H&8O7YN*fwQA* zj;XA{M&A3jfv^cGw2H=4sCh%zBQ4S@+Kzi4@5IP5aGWew77)F#ZeioisnTUGGZ*rD z`xbS=q!!C4|2P=|om%Z(=Lnbla?CLlf-Wy{6DSJ9idiUz$d}ruZqLiX5$#K1crgk# zg4vq`sVu9OjN!6EdGazLv(Q221#m?e!}l-_buN`EL2YsrsZ#w+04Yvt0T9`v$NNfp ziKphVMmojrLx4MKRZh%o_@R{3ZgskQa__?Op=lGH9CW2UB8K1-K6v*dUhL`;PeYJW zS*vR_L@K#B#AO=cv;7Uy!M9vqG=}Vq4?w|d#$t<uEP4%DIH}p zpR&OThvs&g?ty~u2*@4fbao`;$n|pS7eYAEbL2SYUQuJty*kw@PF#fNf^0fYH)9%3 zELD+-rLi7Pxi~owxZ7-6iLciyFoH}JPZgq|PV28f0+yw(VL>U;1<2-ghPtzIH3FL4 zCX%1Asi3?I%a=%R@5?miM00ANcOdP)dRpVk06o7O?oHtRzUo4DQEr@LjA|Ig^4P^| z_HR+qy;=cOff{O1G{bDmj6iOyn{pQ|S5&`6pI`&uy#%s5o`0VaM~5XsU1e@t=xl7rJQj1^(qOFFtgkYc7s4Fqr@r9 z&EEaHCxJ@m+x1zn(H!p-2O3*BqD7V+9~bNw1A;bYa$_J;mrSVwKUqFSfa5f#k+^Ni z;pDgyultZ<7de(rdO$`cb~`th1le#WV7a~21j*8>;@e##0(umCbK)CQyC28Rc(TpH z-3$qb`;5FkP}E7OD~Erto>t#g|4;^tnPqN3KYKyOhY5fGsEfnu z*Twf&&Wx}8?Cnb79J)uqivL9MJ_#gvR_=*m^%t+-znG29279GnvT$BmJjYd7tFLfh z)!mKLE0U26CRb?dI)gmEa>M7h!%K7LXXjv91O>!)A#)N$HkDWdsovV zKJX__k*xnev!F@JghlTbM@a}H1#OTVv>eNuq5)5oWT$eryTBB|FegP4v5MC6jxju1 zAOu0bRH@*FmN~Czq}X`#LxQ}Ye{4w4DO0qThh!-e`1W-8&Uf!}X~S|_in!@$Kgfb~zUj^n@e@Xs$0Jj6t9oNC%4 zlbp=DI3KI!VF$M2p{%6HfV5f{ro=W^ORm9rLBRi>9BAj)qBdatqY|KPZQL6*iE{b& z2B+LI7luwmb8=p?72-Z52)ZJL-5#dC(noK(7)?*sDqAyLmRha(W%KM}^UEfJU`I>I zsVx_BLVHRa&<6|!0NGI+y(^(T zcC%tfI$($7=(P~53$97K*yiLI%b#P`5Z=6ZvC~SlfK(R+;^A2~jEse;|JoWI(Ml;g zwbP^!gf?PEy71Tmaq)&N_hN>Ay9py7V+ofKiW#NDA zltgX;oJ22-G02A#%kbry=a8mNPm|szU5S=FZROPRSui^!$GCxnJR@NOpQe6ro{uSNK45une0RQ(rCPW2$=IR=BLlzB_y1|`%-h);EM>_<#lk9wNRmJ#=ZitBae|5*R4U5CF4#y#FpC?J zO+ZSrVi;)dv{fm?$=i+q&@l1rhrUBo8aKsoy0vAy)SLqJcw1!3VX&D)L*vTbwHjCK z>J3N}@fH&{fLrZ_-HpJBEH14l33`tQy)Le*))P7J#HQjh=*;0Q?TS62ZSQ-E#12Xd z%;amKcs7KFSRE$9WaX^1E?;Is+8+y_O=Da-7;V}b)F}Iy3k|#i65}?8a*t$y!YjuJ zL~erCSAas0QtZ%U;RbT-&N77K%Po*o}e|M@EvU^<(fOvdvwj+0oX_vl3&JT=zr7~=>R{mwIP1NA!lpX^*t zt5Q8nUSG)aPg=&R%v0}%!pk5hu8&S*hyjQc%T5mR9F!NRiqskf<-#UrfgE9*oXIC$uPzVJWW*~um-YssZl;s$6r<8n1+u2HEQ zjsUEP9WAPo0kfQNMYL(j<5ZTCF;;i50t%zpHV&o)r{lk)pf_a%CCsgOScR7C=s3l z$HRA}$&Y(XGx!uM!nnYB?u;MDGi~g-RLEn($8EKJXCz1|XQ{ZHu(+@*L^b)+GmC+l zMHRKLSeyLZ{seN+6j0vDkR#^>OT=tiR)FLp_3rkyj||wbr{6hzcrpf3af@0 z#(Eh!5CGl8P(arev%R&!cmUr9u$B&MCl1%fs>Njc*`M~22?dQZzl?UEIt&U6v8wIv zcc?CK#)A^TyUH>3l}bUlhch}6R4}U79hjeZR?h8ZxIwNVtw(z9gt1Iyu~P??%+FiIsfzgpr|J(lRev&^8a8~~ zRMC)|7!PD&QDd%0Q^gvix2H~b{Zpd2CGAqn=ecpxp@Y%^+_l0u(k}X869QOQy;|Q>EOuU zJfXLJ8X!me6o-Q(u^S{Q8A@G+#MS?1x`sB8L#Sv9^Rk|_ficj*t_`FOpi$44L% zaf;=e#WM>$nh?%prBei3Nd#--i4{nLtZV1j5d43&{{%>jBfD{aVZ`8>q#E&1JK~PB zQyh#tfP5~hk?(>Qu~3W0su1>4p7Y4>k_(FDz^MMrET` zwG8Kf5Bbawrq#auIV%Sn2fHL;KRDW~|AWuo^)5H-UwH?oV>lZ#Hvw)WaGh5d7Pqlk z|HWSjp#pBLvVW<1aWtGy7)AYGxmhw-s<2pAP(9QI+ORQLqW!4*{X1#7)UVj3$(^l| zUEmM(zISJfoDx`~tc9ig0w&=hEX06Rk9VwFU6uM-y<0!6pNMVBnJBO*yi?&CCMpZ5 zGf$o16_F*8+nI!F@*+pw<^&Z;H{OAJ>V^X{HaC1_j1fWcOfoTpjKW7^Df+s+_u>T} zs!Fqpb6jY#uCfjBg8VKy3CTb_@D}e2vM-a6r)FGf6dlT|Nu_h;sni$X!1z#}zU^6u zdM%c%cWwo@a$_Arq2E%?1S!8v?fx(Md<0PsMX9U(RWS*#t$R7BYS4T%|Hc!6LEH=ktY5|zHzp+>RtIs0z+adw4#T%G(w0Ka6Y3tM=hP-=A zQ^Ph-G+nh3YQ4~C+M!Kj(QX|7Gq|DEXG*A1e*EuFNE91>DCG{%4BPH~5z$ zx{5{Ot~llZSf?S`-duW&zElnd`93`~Aag94O(qmK)8t9X(vh|lew#j!vn^Q2^!;trt9+k`|z*%UA+sE#@i7%?2twU z6DU14J$B9z2CbW|Y-bJlB5$O{a2lmCtl z9M@06=?N!S(CB^GY1G!|uS7Qj?VA!O4W=*U7xtay?XL7~X3TxoE5%khN8XzG4Wei= zxT5wYPz3TJmUcEiwVq7q)>{(bz%cP=?&N6lT%aWRi4#b2%#5p9Lusdc1RhVoN<5Tn zTyp(|A4|(aP^8Ngd_lkj4NC`c1oqRZ_{DenvKG%nM#r*4d6^mC@Jf{?n?=8DUWTME z59(4~w@si;-UNdE%_F@T{a&k#;V5%CDoQV*iukW=bQo+kfxr8?Gs)E^v{=}b@4Td>G zePz6UYDd9o0Qx$~JU$WbZ(`C*!=#!F=hoL<7$E!%+|m>c9VZ_$8n&ETeft#f%TVoN zaTx*x(6@mNMq`hDHL%H2Y^zY(33(P$e9f15JBKrHQoF3SrVZTGGLuxmtJ9s~&X61? z`Gaa8qx-}9$)TcghdUj{NU+FK1sGY&;=3eb>K(UP%b%>QRVTFPxzFK|)zr1@aL(k# zLTpS!aQQv*X&Y{gIQU)s)o?2#z)Hozhmiu`zHI*$Fb@jUaF%a}HRZ9nEm3?Qh1LLwe%)f^-^z z(YPw=NgnQ;0L@CJnRT^ih{qf`ge{H)RxiTj@7^t3I^DNMpWaPgt|UYqqrUP1ro+@=oR4m{0IL z>*03XrIL$eR6W-kkf?M{nd;FjY_yl8wgy$EaPYY8av#1G&O`^C@%r=>V-F(gO6+Lm zfjdMLh0$UI74%$6|BzE@nqrls=%_8sE}-YaVd=H=OUVb-Dqspz$5!bNQ*k^B%h*Kp zZB{_ScK%?4tVr{ICu75n{8hsT%G4Kx;%dNez6^DWWsU(UX%Qm|XpU)GMA7aoBUuI^ zhxKGp@ZZ6)CE#Ap%Xq5%C#ICJ^OIZ`4iGH`oMV==X`?JX_jAU1(ktob8y2oat^oGH ziWihnK)_&ddZgQd*ntX-kY`cLTK5+ zqGZ7;y6wlaq*BaOygEHAy@#Zh@X_n^iO*$E1iXb4#7W3z!X%5OAg8=)7h9oRBV?^Ya_+i+Mm znR2Ejh!~6cbNKs9>6o-!afLnCz|STB`%4K9q4%@>`%7s`I-%a^=kWKJ(rg^Q`jhEJ zBbQ_jgxrWN;qgZ#x6S&Fgk1V=I*n_C)Y{z@{;5Q1nC zfdweYQ3i?SkYqmlO)$#wK;sl= zTq)6WgBnyWOqghHEMddqi!;3_{t}ii3*Q1Ui7TI?uGeGBIWr%5!=_?PcFc2yCrqUA z7)(!p$yS_xjVB6;9fQ)N&<0L%D_(cnvFeHBHo4?e*N|8ika(dr^XGE!2r+G*nIVy; zdG0!19Ehg7p#{&UfHXH4wW&G+G@wR=J5WTL6T-mYRtCg*f-|lcf$5>!N$8 z6T&+|{L>I_+^kevvst4juPH&dmP^AiZH5D-?lT1+QN|WDeMXT>kb;TK_p&0vhr^e@(}oD4~W8JH5X;K#uxrF^H#-~b6%#?cmprMB*fN3 zj+lTkQ!HreKc2aM`tgr$<@Ivrl?h+Va2m|qmeLhs6C!QA^WWT9C;w9raynAp@mE$4 zs~2zo<|2@eidOXY4%}z}T2BSEd@TW)|qWaGJ zc8g)NY?F|k_KNY4~5bG?q|z*mnus=H1Zq2-5MWGPl;PF4;65Xp3dP#%?dEf=T-itCb1mR7;I; zPpB$%%0N7U5_Mn*FcHr}QX~K6-J2Dc4`rw$ObsDth#pTo?;rxHj%egA6ci)nB?&0u zeDdYUVUeu%sI|0}w-khcDKxJIbPV!hfL8bqsK2gJF9&&`7`LB8QHIYH{~~z`wRfH9 zxpa3-Q<4qJkPPdJ@L?;fQtb>f{Q!Q>P4IZhX)8?xDf0Sas~u6m*TuzAXkT`-P9)Zn z@xxbx@NrP5xn#5k8FyDx3aR7~8Nf5fZ;%@o1`##*y4(h6f}>EL&gaW6;Etv0l7~eg zVtP6O66F#=iJOV@wADk)I7<17n8q5FV3gHv+nW>xdAOD~N9=UE*zCfJy%AuW)QywQ z=*A~Y9|**v9)eOj*!pklz=QhSz59YnA`S;ah0z_xIyJsawz*Sg%M>f+h}gv*{J=|8Pbb(>cY*hgHvDxA=67l{tcsGJS-8{FSjKtxTEXw$;mKX zFF%vi#EJqBI1^2S;f;tdz-q)-;o^aLKKK8W3_&9|Ml+&Ge%057$ zdt}=W>{u=fgLOA@5m?T6tB837q(>n4V#xt1?5G&Dxs|p86IE;$1{^@TN5OX zrFtZ94w^rpUiRYaTpl+EIB%NZreuU)Dlg$ujcHk+(!Pa523FCPN;DVyWxP3>K8%Hoiv}6 zT!HbygRpKZX)E$jo^bzCLZ5skc>j4!_4BbEWFN4E-bFMFzXuf1IePwyxAn3@0RpGf z#x*G%kP^=0d8k3WtDLc}hjBQOh*yl*iP%vrL)pV|H5maBcd%i_rb=YV{BLw%JW1#P z=2*Q&RnIN`;p>|B_a@Ks$CM%_ZPsS>gG1rM8?f;YrkXS2I;T^HrxGf^L25Ht$0^>2VVl2P#L9hmrRk-;# z_A2X(p{^Zs!{(qLN;@os{a+gdsq3Rt3W=gMG4d845rq9N?$4|>53A9bx3Fk=fIK-I zzX3AZ_{E#s4U%aFGi`^ND1Cs#x&s`Cr60DRItRIaM5+JJYqfYLXH1;BP`U9d$UP3e zkOKiJ!vx#rWPlc$?Xw7y|L^qYRXd5>O$odx#q+Eomwm zdGV#67I-t>UK7vj%0%1I9%_4lge+a(E*1R2#jiVRJQsWj$wFb$zXNbG|1 zwOO^rGQGz|QXv9utkgI=j#`*qh>q$tP&iDgElTo^8>c%8iLVg+W-kheIEKefK0hJo zrjAQ5ZQC>WsOWwd_HXF>N7j9+dRI^O&-f$aa2kGfs@Ga>gI)TDP;tqo$)}LkPKuO9 zt>JolqP8-hzf-Q7IQ|VP#)h8g%VTDA{U@J`?P%>emolw)s*S#yrMRtD2&ZF4Io2PX zQ^Qff8bYRavW%$sDgKdATE;J)-hP7@82kn z^*wliLvo2i;Jm3iHWw-c&7Hkw-w|T{4ep)Kn?#Q?Xs!LIyRrB5tBMc{p5#=;&cXuajHXCMv@KgH(T01{%zI2>Iw)ve?VGP`dBN`aiPpfrCyT)K*2*eX~?3cA{CxJRRBCkch zs}Lewm;(8T)9f_gRO=U6iCxWDNeWwUDr2f`{PgzY|hFV zIUD5-NpuRLQW6{;X^~iL1;F$pvSzK6*gRevCxxqcA6#bt#FON!8bNrQEjw<`d5Mxx zE;f~4zfc1147JeGmn@#aWQIKENYep%T+Iwo0IaWHP+mTIMuS4*DZOKrpXgOv>-Z{$7m!89c&qP77J_)qVWQP~f@(w> z9mP4O;b|v~R&<9;Sb`4?IwYOZ0$D?Vb(&ZK-c_8#6+9jzv@@>V9R8~S+%TAlSXhlaS@G6)P@J*B}Hi(RH?r;&5C%R9H_g0B>D>aP38^*7j3UgZZNoA1dH$yNjS~QNIffTW(z1LW+6r7KS@=kA ztMW_VSi&j-mQbq`$w_tc2+QW0D$#@-OV`kPyvCc)(aU~g|30;UziXEF4-PK29~_Xg zoTTLkql1Iv!*c!GW|1OBtI*k3<5I6qvF8{**N!2>QX+ML;1x&B-8+w7o~&y}g= zFYMV1KHb0n>z&2ge;&4))iO1)$_EGg<=S_(^8E^1UMmwGY!|IYx%MLdtnA-AC?8fU zdB1dcaBx_?->M!QJY4YUZ+yDozy3MT%Jr|Cd2UUmJ%Db-Gc#zu356rC;?{f2L04&9E4EyNllMi<8-6I9rTn{e?-I3u(nIX~qF# zv8mB0E7h&G_~(8$U|OrRn)|=5A1dCNY)6vzW9am+_Gu0Ns@3?_mRqyuB8!x{=LhSDBm}7(obxXs z-0_a`b|}4lg9`MUN@%}t@MJ0Qfu;NVbg)?`bG=?TsPHyP>-z^?ve*CA+%(nMa<2P@ ztGIZBv?T`zmDU;?K^FbLHLqU3uz=TW&HfT0s#<^k&C}i8;!}mC28ct(diw3l<;VN7 zKsF8XTH#H<5O6`dpMF*RLhmfWJa#2PbhZ9;Z|{fV+kjQI{{8ODA76a8{D8HEw4`^R z;oC(k&%b{C&C(nj6-&gw1a9jcv~gVn4@PA`mw{-dvR?znszlZUeWQ3{csV=>AMjW? zUQ+l3x-^V5Cq+8SvP0?peZkG5T=P+1*Z-a)G^7y|bimR}MWDTEx>DUo%qW{dM}b=8 z2MIS(MZkZOdHxdeE|iHY^go(^Un%WKCdg`%$L=UlDKb%kfLQQBLBYJ&K9Mq4oNbIL z!VViP=J=Zf?(OrnMdl#fPrQ3c=T#==Xh3h<%u{zUQwdd(;``I#~aV$6S4}JdvqY-srDa*#chu& zWooJi`rKOEQo_@Gs##h`5=Uu&3R|C>3X&!u<=aT=_1z4yj)kzds3jc$BlgVJ%n|}DJhIn(0TXnikp>goVLbXTlq$fs_KDt z3Hvl@k^v^~z>H1gkhuhj$u?;aB6fa;kDLx>Fyma}nh17zgNLJu4&|x5!42Q8Sj0~4t1fRgOCk-WxlZh#&<*|Rj74`g+T^OFu zY&^O3(_p8xPZ>pAnJ2i%6BTQQr#;LL$@c+qF$b!bx%`wTdoups^;K*DULphjeCdC- z$Ym?`Fdjao`LS$2q~Xb&jUva0B`JSwET#mJ958mMWxs!1 zp$Jcvy~w?Ki7wsbfrvkIjWEKdFTLCtBAjV;2_#rz^r?M>8l)%+#UV)fg`R2+TU5-6 zx#xnVgzT)}^tV*9*A0#7R4R@*(eFe3?WG|G$fbMwAaY>!N38MPt6a<%Q z3wJN_@Glm>u(SojAQw3EB1uS=jz6=hk6ID3P58-@l2U|oc1UV49Wj!mn`5Hog%8P7 z!vmgja;c{l(*}+w)82?V^ zbB$Vy14@38>%`jRdeo#h%RnCpWzt(_A6tH&^oEMs9S3@uj{}}JOS|l&zj?n>R-Mg| zu@pFMVV7ylY_!H4|D&)%x2;d^2%vrte}j=179zt8x4tgKtfMcM&KDn8L%XT; zT80Dh+{4>%NBOlpQ*MqGFz|{hVYUosdk~dxBgAw*y$p8)bkNu~9+A4M;j8N<%H^5>N_X8~6p;S(rjg16A&5J)} z#Hz@r_!<}Q5%MG1Q^k@&4|1(u!ZYrD6uQcKmx5NVx~=#B@kP!j)t29~yw7S~f@6Ymzgc^A$VO^MN!_%%cP6 zOkO%lM>OoGjjG&m)?MXZf z8Q<1!T*PZOE9e&Utw<#VcpKxUy=tsNCuZ)-#*N~shv;PVg^D;Kt9Y+l@&+0rrx}MN zhn5!EFjT_X;Rxp*_IbaDYl%(=IHSz;M*#)N zM0CWm$*52;k%k8OlQnrJpa z;I287k_G$&#Dq*=xUjkB34QcNR!J+FV>Ulz|4^ouBaBv98R9t6Odg?ppgrcO!_tfMo~oe-#DFD=HC^8bN5g>B1K zFd`4AnKbRFX2K0`NjVkJu14FZ@J=BpBiqYRs44G_(F#@yGmGqNfYSWs;y!5;;`Z2Z zCAe#-Wwj_F;D#cD!Y?M=^Onvb=yJkYtr~7K{I63ZcvoBk;xws}f;_&X&ee>{?nKNvn9rXETV< z2_6L#i5wRmo7T?T-=D2->7Cy1%Wp_#5ATdfYCEc-4YM~9_LkpupCcC{-~%4dcF^l? zli$L05LwB$QjeaH4nOqy)}MSnyfGCGRN4@Ak3uAlb!UBjB1e`uid++-QJj2qGqoD= zTdP}v&>oxG_uo*l8t}9#L%AtafC-1-+qA9nZN2RoI?h{kw4|fC<%zVnkIdI+E8!Lm z7BYS_0G*G{*if=R&nKOpVR0#^lglV~gWL0Wkd%|F9fJw^&$!+Swqp!9=VStwA@%){ z8>qTf*2H;i-@`1-$7*dHZsMlIYirp%TY=$dQ#%_z&wQS6=WCNzGVhF_rg`?>^aJn7 zP1E@p7^Envn95D_3Dq4?aXp?`ZeK<+*grl*N|L*6GHl(2kKx%0R>SJZS)De{%>7ENr$!bLl9{SZNmLlhtWR+`%U1Q$s|4;|j%Mu( z59g~BTsY}<#wR1<4Z9_>ek)B3Ns^rd2LZY%<@5}ylQf%h{lHFuqNj0i!M1`54pQ?y3~O`q9-cP%bWHH@XfC;o;GlD_EcYC|bmW_q`H~zQ@&(f? zH;fqJ5KTl)x#4tyt2uZkSQO(RNQ+JM=O4JJLcXWz-SghjyTNS5gYk-cr_-gIJ0D}6 z_foeZpp%?X_hd2ln~CWjKwMt8N_jtWg7~3?Z9<&&JxKhiT8+q^M(%hqm{MVI5$*ho zSQjxk+4Q;#Q$ERKWmUhiy%oLYk01>nn*LcyB^P|QXXYreVt#t%SKi6zC)Z;mg=P7V z9X5lL3Jy@^gYx3uJs)!F1!4S4$(WqrcyMp?mi`(+(pWXG_^4iP#8s3Y2}n!ST7%$D zxscZOeQGuaaa+)aG1Qg<9Cu$BbgMhj!$(tq?_sBqGcqNEuO_%f7K{-%y7q*J3OA)W z$r$t^%L*FJ(`kUQ%_$dxN%@q-w&SYDYKx@qnfN-Y13!1}svfuG^rCK*zz9ZI-pBa? zABPS;4u=#)C)}WjDvm)FZ7_4QQ`4W^)3o2r{6vdZE&@!Layz_PXMLIMSv7G6ihiln z7)#o}c`S%OQ5@+sI3c{p_cS^S!PQTgW3l9`nXfXBR=G9Dy&^~gte!wIvT%<`yAGa5 zNYrIKIB=2C@bY{6+R-(^Yy%h8KaBGaF>}%o*1t}inIwRtSj_$VrYZbDt4@m;DM#mE zM+;ugHjK<%&3kvYbW)6*E94jeBX^(*n~d~302^5pHDZIed@gX7tTlzBWC6?!>S9x( zaXnLE0af@i1dQGet9;BVhg+x#My_ozeTGcR0Wff@s9xh;$`N+0(*_0;7=(D$`<+J~ z)G=+I!p&rv3A1+!dLvu9Q`RC_!M)NRiHl^Ng$ye36ZElQR1Wu`2xTt>NQtG;KaZR_ z&<8o2z-{?Z|+51i0;MT*9hIty3LxKKT=|6h;!qF-*TCBermdq z#*j;UynrHBtDAK)%WeL;fw$>j4)zZ=>WBCF4t(h|a=<|UnOBUek4Z&m4mqS1M@<`R z!>VQ`o_dJU{8dL%;gTmPNzY@p?2HCys#*f;q)W1-$nw$=fC!B$PtVN&_)tAu)|ga! zk~rZ$)6p${C-Ife*Np7%Cdx3*t%dQ)drevgl!s-F7tgJjad+7vJGM`# zPfW(k=IA4icJR)ox{OVSzzvO%yguYyk8kfNkGgJq@ui7bg_-;q3o-287%r}QMHXgf z>frF;=|a>=JOdP8mu79nqBdD5pC@ch)UrpOR-+3CV8tS`a+By~o~)ccsw;Oxx^l3V z=quCy!|Ajx^7SN?$i64#9iahbKGMoc5;nWqztsTYWbBQ;^EL*>1@Hk_5xESGAW$*Q z(o~v33rr{Lzb}!UB0x80|JO(n#IqUz25ez9GZf?bCVU(mzU)4e>I}zIx=5BK<%*RG z#a1WCD+&S9X1oFZK31M+=XB^b+(vXNcsww#D$-2Y&~dT~W&-&a6*MB;0I%Xl zkgN0^&t3`eT4T4|fXHRHacEwq4q#m|5-~tKf~1)wve2xI&Z)wKPZZUBM0`YDQi#sx zl7k2tUBbeJZIv1_S;MH@C{Y10tWUD7pvqAwOX<5;7p71Kk@Ge0r7<;WBU~S+jf^4MkUw;VKzfw!6_Di^?E_Hv=+_LLW{|%#%!Gd=9p1~;zM6Nu{<_cD|E$T1fJ)7&HbyuBdZfb-pP)g#!r(ICUZ6>;+n9G%lHX!R)%~Q&sfa#5$)B^gWQYs)KAqEBg4ePj2by<5nQ;&z3-~ecY$Z{o3bKPn>bf zj)kWcRQ)*^Sm7if43((402^J%IE)nwOu1g~g=X^4SYX48quDK;NA$VHLeNM95s2Lj|%mP3q3jtlVwHI(Wj1ky+#XQ93yGB4{6 zXBjMQsBhjrI+`rnli8p%>@C{UL6?8$-NATq)Ez9yD*nDbU8stV{WGMB z>Ov{+2g4~rV<(;VnW~@Z=X}yz9FNDaRtqzyGY7rU>Pd4kPx}2&0387pkx>(%(ON#)qoz42C_uC+=+Td)q@Pg{1I!6_n{GZKNYEmhUecxnvuMRzn6*#QYr8xN zTC{`deO}rBwRyN`@;jP-H`Ebg;^x6-nFT%hqZr$Fz1tK>~Ga$C{HOW?3(xDuY0Jn%6Wtj2{L*o zoOk~UKkH!^^^L!iUrEry4C^mpI~!uyRV(2qk0*`&ZSMFD-=6S_b_%^@{wmEpTz>WO zY!Y6d=-uUSfS(oZXD{;DfZLnMu98j#h(3Cdw!daS4(qXCUIXR7WX19!?n*O-+z&`e zFl#rvK&?u`3%k7u}laIO<0npZ)d|YtOa9 z_C?<=NwI);)!7-=h>ia2bhz7_4BA6<_|O$viQ{f+yMI==kWb5g90t}d;&KTY3HHj^ zN3ZZV#f<{Cag__5o6KCFVK0U3eC8AYC+$l^@($;@bLP7stDs}9hINxRC#$SQ#V)BWsTyO`Lf!u z%sdpCJ4#(fbw+EHZxRp|r-EJ~fI?y5E`Th7Lgc^H&k`ue|7!^pX5tsyQp)l=+#7P6 zx|)v!D|u(xL9tey(*^2p%rR4^dwayPbT8#O8oLb+#s3`42v*YoQ>K&l;J4`A57TYE zcgLsSwnu}rN_JXso-UkOZ#spRpk_#KZK2t-|cW?vca+K$1r36t8*;)!Tt}=SJQ*Pr-rPiwPLz%P08mg ze&37>$W}49M)3gJ;YpU;C!}3cPSs3m>eXdZjvKUA(1kh64ZX1KQXz4CYEi`mx}Agu zDZ)qOGJjF6qOmC;_Vg+kgiOXo!Iom48}4!eZZJ>>6(3TQO%3g9NLw^Rc}&%k^pL7< zQ$C)hkmEGkJbDeJ)C2c{LL6>Ew2qn@R@c;SKdb#%?40H&l-Z+?S~|eJlU9cAmWkHU-Ecp9X5^l3C`T{Q)|Fvvvn)T{}zP zU3)Xzue>MF$5Z)|O4xbMs^uR_BQ3EQq~RD{M*jHD7R>RT?I*#8D2oHNa$RMdofuoK z;#$}kb9nmTK}eR32vQu&9|VIPo*o2O2ja2B|H%MgwmUL!#`NLwTq<15^5u&9t%8CC zojdd4`x}(DIYM1#{#wMNO5a*e+LyxF_z<)TAH~)foCPv%_7%aZaVANtMPA4JQ*a-P zy6fDuWjYaQt2ew3o#JJ65N1V;)K1Po$OMfZdDh}qb;F4XJvH8g zfl_{no$$_AEwwf8$N@bIOe`-4wjz1mwJl^YIg|p8Od4u`c&Qw|!8RGJe7FuNYoOHd ziX9>Pz?{Y{ z_*ud^g_3d7Yd`K-qQr^Mr}(XnxP3?q`T+guH-V|Ld(OYwK_V$4+l)(KYs{H)h^oqXeR&h|}Y=#NrB?^yk;-rI8u>H1u5&l%J=93}ZJ`X&ey8PA4y>eaZ ztv!%)qwKnna=ksh9Ce5$s-FzUNA010mCfgEN{kU!Uk2uplb9n*>Hr*1$pU-%C5}nR zrzm9=FyMcm%j`C?%Zx@8qd@nJP)MVhA4W-c`Bj0&8ktJ~)@>^VK*)8-Ar4z4E~I6( z6BOA9b{TmYT%Z!%AqWU7AK-(7Dd-5I20uGP8G8oO8sT6t;V>CZOIuU=NoBpgiZ?M#W+#G-hN@^7 zACV~_FL3CB(B7EJ-KOX%%OE5{NVmezGG6U@(v?QW%=_J^#=%F9HxLeKFAAgy8+oR= zFrN2@alx5Ii~*q4U`!TzXPu&_0Y}krxF5E#-;R6|*c5w1Hs}zRKn;O*21)t^+^emR zsaO(x!=}&mMnt}2oCGpi%Sf3AzYiYI&F5j#tPEli2S*KH1w$KEG276q_c%e|{h)T( zHQA7zq$JVtHlfsd+yfmZ0+Mz=DzdDTlvJ5tla5kwJ;6~W5}XtqMH7Dh_8TAznwdZ+ zKu>{^h*4{VvsYX4lD2-{NKd5+Ro;cDBg>OSNWdJ?M!!)I7VyBh$&EyYHOyT}h~Q{! z=i{ZyRWOWvu;IaT4=~c-k=oC8aP4Ag`GNHGY1))22JO+;UoNfRGOB4X+|wHVjAv|*fI z6Ziu5Q|Sz)b*w9`tTIGjO4tyBdQN#z*b0qiP1xEwb~LD_f?Y-vpfHv6!I-2%lw|SD zCJuG9(o8|%QqG20EDUfjkLH*rCW`TyD-_pek9)iHRD;pn94JHAdONtEC`xnfBw$NY zq05=x$Car#$?C1_=U11_%LS?Z;M>F?g|~_dWO65^`WXBrm7qUhlFAbE4-&{^h&j-F zs|*2ehP=^+a3l(2IJILjY@J*_;>OltZC*Pja6YIbl_k5=?Br>%Y!h;LHMMs2sxPlQ zvv*RD08dQzEpQZoXTQ}+4g*|Ya+TnphI-eB!FnJvq)&4Ug_Y3ua@;%%$SS5vU0)wp z6OQPNxJ_6CXJ2SW*GW4Wk7D<4q2+p3y-tqi4WW*7z}ciVtCTdrX)Hkj@0zqXSHdeG zAXx1kKChqZq6uX$vz?*|8++Y-0U7kk2PB?F2Z{IbtW53TDW2=)k^AxfM)lWMMPTSfB3j0_8cVF6iqCzg${XfJpxZE zB67-#kb*32j#KdOED?#|!zx8}Awtw`3l@7OgDtUq!J9CMW=Hk?X>CiNsar03?$&AV#hsebLfwxbmgI=|?q9^4o3|U$% z)NO`m1k&SUk|AtXh=>^shoP5NY4V=Lpgz_`I$Dsqi%M5Vge}2UH)aq3$zSy_G;VC` z#)C3kdk?S*t3~-rijGg7Vz7pmV)5qbMrefX#91a@5$jGVl8w+F>l%JZqVvThvz#v) zZz6;GZ#A+pZ6CKM18$4)46Qfi!cCNIzF$Ok1#aFeyJSjD`3<0sl^%_FT=A#Z8UM2by;pZ!{;a7U$vbxyH)Ytmuxi5^7UwcK*Di6z6-y#T3dAj+|1p+S!( z*8Ih+{{5`}^{oC3SZ)u``t1XPv8spn$-g_Ozvbo_UFl$U+4S2uv%iw_LxrOE3(COt zXN#lpY&Je!4132jIaj>4$0Kw}3)5fVYO>zh@3pZ8a4_n>>oM*tCxg*u{fD9}$FI06 zo#Mw)Ar-T-9uM$a`tg=mT5D$))&2JRAOCS^8ItwxAItCVuh*!#6Iu-o{u9`I_T7tL z5EO^w&b#t;{b%k_vV0)t8U)Rw>3E0`0mKh*E*cD(e534HPEmji@Dy)zBYyl7AA?*F zI(D^CqZ1YDfIIzXPm9xd^nft=J0zAU?~TtG!4JC2-)FXH{P>1tBarQHdgY%MpvKMb z`2V-#Klt}_%EP}aRDg}2S=q*-zkg?%dg1}m5wdPm;JXGffZs$iJ}BC}aZG}ztOw)- zw*$m^0Tr(=tBs#19&_3spXWp>>-85`Rk{9>MN1O#Ex$t}KB2ss+}@Nr`5ukOvg?&2 z^cIweIv#}^6u$X;)QZ~K&4%yN?+t}zWrX46D<5~YDjhCon;KP25G8iJ)LbwGFFE3| zP*$O^frF17lg1UY_0ohyQUeKZzK{?{N(p-zaVG48v_9o>tGtERo+wkDhToXz(~z^@ z@Vn4DNGbs?u5h60eeIyeRUCwVPB_aW3m7>cP*2i+{qb59Lct?{jK`>{16#hC;KaY-&Fu|z>m{sJ})WI4MW#%!2| zk)qyBOwDO;Xt^!Xv!KfMcQJbyfZC`{fRZIK%!2FYKZp>fG>;f~dte)c-B4T&@A+lh zI2iLqj0zQWRAn{~=C`Csu_;2H^dt(VkPE1t6wVqgDUv04jiNcu_PJ6a`K59E=(mzK@*F*!xW!`%WYdw>J2h%t0H*%14s9_lNojrva zW_k`atb;m7WIjXTYVskqUe-uK5he&{!q})KVKWp(vI$x=nWjhu0Z-FSn6!iAid|0C zq;#HaR}R-Us1NN`*w&BOF$M75vO|P>h^b~hur#xEcFacM7MkbDX?uw5N{zfx=_h~X zCl7iiHR`~&mf-qib8t1~i4Y45ig#BBWlf9vOb;50ssQlMQ(qMDmN0Lo>w^0+23v%@ zG^y*dI@(jcB6AJ-&pvMxzf>~jIp>}Op7}&Fd zXBkY1H4~|e#w2>~I*ADne-FPE(Flvv-T+h0`fOu+<8(0kr(KM7(Z2AD{C;vberJW< z=b??z7WLVaZ>R;EwbdLmn8`KLM7LO3WTP{m5Op`RMP*#+vgY*3ayOuhEWBI1Rt%i- zqZL+m;3pe(IRE1fo49`DD>Gm<)?S6Bu{9i7c+W9~{b+77NA-2u3&Sg3qeRhLG`iwG z-=@R0cR4fm*R*l*^(O0^}`1AK-{jyFoy*2aUa`w24i;u{-xwkUj|w1{F;%A)?o zwaJ*A(58WF+9zO5X>icvND%ngMBQ;n9D1Q>0XZ&hN*qf=qdVeCDS-0L`o=CiQS(<(;j zq(|aFEIngwVEb9{E6vOwBA|>==$c|bF47V}yHvkFvm6M~0@pxmyWw=}pCph|cED{lm zGuOf_1)EUZ!LJA1Zg2FR;UIMxKwpQ?@V-*oNnl(omeG;GQc^PKXla}#cNX%!#DTIs zD`v#{{mT_*cCag;*s1|dMFXwF{ zf0m#>8kms+h{_%Rl2PBJg$ape{$u+AQ5I8v5nX?X3Sz9Elh(nA+jD+f6v%iuo+vV> zXa892jIQ)!9YsJ}Q7{DSEF4M}r_jRw!kKGAU_9F!Ata-d9)URRNvFS<^@jW(*9B_~ ze~HC;ulEie2uw%l)lH@Lmcks+sT8GmG-e(+kgs*zYho`!!R=EMN11ha(SuvjUxIzp zTPqqc9n@-9KzoEzRBkX+2xA^LTX^CUGydz2cvEB+PL91kg7XJg+Hc@pn61lMuxs;9 zAh>AJMt`A@aQ`Cs$%vgy?@O#=Zq=eoe$IA9Zy+V8M}rjx0WgY@ZRsDx*TK{mX(W=b z`Hxa~&om@g8aC=h{i$1u9Fl}ZOiqAEneu2O5F`A+idRKDywrT*RTCKvm4@w0&`lyD z$RTT*J_4yr$&>iSK^-yDD@(A=O@tS7@F3X9kS9hR7V*a)UP}r9k0_xh^qC|&E1qy( zkegjPlKd=3oL#h5pa-y4@ftFUr=*l&ZHjrqY~?Ge0~sT{jrSi+zaPT;dq6Y&WAHP& zkmP(Oh&}AN*4cL77F#FS3Q)@gPVnHU)TVoVmYjD7D6!oxTm~$Td*Q&kpaSyVPbXZf(-Kvw3<_?}h`~KEh#Oftg7E zKUkkqUxoyZi;ddBy7@JjHXi8jkydHCfMrD_sy683eP{r;sKwVWpT3al^Hlc^h#A|g zpYZdbMbsOAAG>wv;AsEX$Bab<=++(|Z2H|N)yH$@YV3I1P#^O2(teh&I#8A9 zNRMNb_rkPUru^F;3+IQ;{p&anyo@sxlqmSs$uq|N>>5BdM_ZPw9Jw1Rgx8t-Ih)kc zNnlz5IKctap8OjSVkmwD+Cs9$+dC)qJ{+O$B#~(F2F21R2zT#MX^Nmzdv*tWOCCk4ppQqJ z7whNe=j#xH({=~s8BBo|1rdq3{ITK__>e`CSU3z^4JVF%AsegINuBqX@HAe2Fl zf_b~A!#b(yE@qoNQjoM>uxmeN`WbFO%LgMWbh3uUHgqR6qDbJdHFc0?V~?6KVNRiU z^|R^yY^sY*Z*WtMY|7i-kLfFmhO@~MVl#BV!Lepv7Cga(q1mD;PeAmAR)4RIh z`KYpsHeR5x2Q$ocCbI@NFT%|fPyz0E-b#C>DgkY~yf>_0){pAv^<66Tj>KcUggM!c zdhM6ZZRvXDpElWpKZitP(ML%R2h=3388qht6xHrtl1FL=a>mc`5q38TVCT)Jqe`cK zp<2mmxc8*F{Q%6~d;IVLBAlX99zJ+f#WU#m+i`cG>Q#KT+q}^E`yuSl*R)OQtMWIb z2wsn`fxCBk^}YFB#hdUd&0QX>{{H2xt;((b8My#X{B=%~52IDtlMpyN4I?Sz0A@~& z!{&FI#W@v8N#uuhct$NjehIzccQm3~I`j`>q=GD)fK^KdD!L~2sVqf-E8zhyn-*3F= z9kWwCVoa%h{eI&)aj!?@6Pi}2O3~?+PDyV#AzYPp?SwtkN?RP!k(jx2{qqu!pxtJf z6cim~I?}0KG|_CtC|+$7JoLA53{U6xg<%Uh`a(Q~v;3^&{n6 znMIc+X9YMpcvKe;PhyqMh^!s**1)R78EGqil8h=0CdUjmM&c|?wGhj5oCQ`B+Yebm zpgYB(A5sQv`|uj3_D21SIDV6fTy6xH6UH-{VCVf7oMS{PqAw&H7IZeBj7l$2Npvtz z_#1>_nMebgM8%Sl_Ur@D(_*nJr}*)Py+mX6y$aqY;nVA#t~@qQ2PB5MuoLCy1e78M zjw5DgnagAJ6I@2Fuz9MKP=zCyFgUiYG5?<}|HD*lY>8Ng8L9M*G2`G0Ai)noo zbYME${1(Vvg?bAh7+AzhecG9f;Q+>HYJ$+ufotb7hsIL;c=@BX${G};4X}WMZCG+> zvjSXPsq$8(O?fPKIlNQu&t_+ha_fr+jYp3jR#Dwoc+uXl&uM1)6$~IgBYB`ETuUY! z_|rmgn%`nUT zBCiYD5tP$b1S16=WTIN8HdJ_X6(>k|jMc5bKF*kv_1yu;AD^Y=FU|7ioX4$=yaCOu zo6n;f2z&}aylO^IjoH>*qNt>zgJP{+o~IWZfxb^`qp*zg6=9E>yyY6G04fW zC13wuWt~X5H{(*qMst)bB%#3Ck|W^;H>Htg+z-p52s~|o)X=cXPsH&NzD0W5z&mGT zj0(#^7$t@0AQm1_{b(S4} z^yonz6-Op<2P7>g3b9Wv$DKuPDrYPlhxD4?%9cgdB;y#}N4i%2tz7$lM47QL7g0Jf zJIGY{OGX7iCJI%`>a=7%lQ27mkD<%L7sXIj^kf>@QNe?0B=Q8)KH9La48jOIA!+`L zfFP~30oQA6s1P^oYMWCL;##{liIc*6&nnoON9$U8{Mehd%i)~&x(F$cu8_rT7LMzxHYwme_ zT0%@K3BDA-RG)*cu4yyHfxdKzTudzI!>U*FTsxBgX9SnC#06W+5;UKAjN!ps~mxco#;NBa>-O{CQA=HZMFMo^x(*3fC4WQ(hn@}@K`4FPc()1@HY^1eQc<~KCrGTccrci@?ZNNDSM!%u55987~ zFnR$w6WIV-H~i6a*R>e{M!nn8Gkr`vI1-}J7_rVHSrtGH_5rl#QA(Mh3J3D}So z7+^k^%`8f#L`LXqEQ3*;*>wA0`jSF;KGcgWWAZ~vGr-7W#KS?JD~wh#x@hL>^gphk z3F15iH3Xz-0`A0&I(ugMf3OqESs^+psl|CVeXIZZRe+{Q&;4qvyn=yb}>u0aiZ_wK8a zsM>4(y>7fp4WB?Ah8fErntAxvuS7!|r19q5p`p?lxa9}Y`PvsCx4zp`C zUxDIgqf-)%tTB5Ujfwe@$c`=QKyhCn;{13C%|?$Wjlhq_WHoGK$MNT;m;vrsA4>B8~ zuM}4&__M(es_mPS${gD=r6`jE5PAs?P=Q%dRuu4y;vxH(-{>SKbG^v)%wx!~b;^cw zJaza*!{gb9&3I%nWi!hazzW?&AY${zXPl|KcY}Dyfgw~)9K2?bw+0*aNK5L|1hfmXh!W;!$Uz9in@>sPEYpq zKhVi0nO^0_Q}K|VMKy*Bc?eJ*FZ55^L(@6$nV&z6{ES@j6;4S%F&`Oi_A`WJMlqpe zK2mh`uZ`c1eCpgrh3Ub9@H-3;48-=4=h+GS@NGKuG>Rs$b2tR%wzvU)EGUAfZeg*&mgd_(LfB5r_3gEnu3U7Gltwueg0l7iPL2QS#@c_D3~ zF&<1$b35}07;96Pnd_ZZOaN2jDa^m-W>IC<`8Qc&+x$5^)O?gIi4$nn<IPVJoJGdgFnyVx8UiieQj!m3M( z8V`pAc@_Xa+*b5N6G<&a9uh%q+%a`bw$@kxV7-;$23lNPGVdJXFFmctQ#j$o2V10* zKO&w*=NI|Xh{~~B=1~JKU-GO8I4t1%Ec#4bG#V(biCyp*OaO#Y6_gJ0mMPpANC70} z!3|d}OFy*HHbT;?{7Viz(7Av@9T6Xk+M1Mdb&PmOo~IO%3*Tl+8arvhGxaMH?BemXd`K7q%g00q zsocHYwqa)@hyy^EijeFFl6Gok``QSS!aXntqOzW##Ng*|5;YuQin|(B#}I$?Tl{O& zAab4rR^)@t-AFCIZ+!E`e+K=a0?pz_l7~F7YIHK|?@$YMM^@xRJCxup%|hodB1U^= z!{wm`<=Y*Bj_)Kq@r-35KuWAlr-wRW3yr$cX{`Af>BSJ&mCixlmg)+x!*1^d z5p)gCg&$@>MK^yuvs-qs!>v7w1h?Da{A0J{xV#?ak;vW#9zNXvj;h}o;5&-&2ce<- zS!fOnlWiU}ll>FUNXxBQ=u`15#)FMpo}CGwo}H5XaL`)j2;BsiM2G{)1b0c0etKTy zmK59|;fL2CsFt84(LZZ9@Wl(f0B(8CIhZphsi}~z3iwGebu$iK#ytozUMP@ER4U-S z{9zViOGcZlkNl_f0rtJkQ_l3FSi%hCNX|a6QY!I&#zzURC-KBPk;*RR2ox`Lv?7w2 zY>bC6f|(ZpI;*%o`66q-k_EDFn6>@Q85S_FcP<280M2k9{4#M;WBlutVvE`dW0`AW zaSt@kHbF%ZHa0$!ZL!ZNiGsUtKfixn-P|@J=I33OAFW%UowKoa!8jhf4OZy9D@;y$ zG%!hqFBE9A(1m*ac%f zWG1T9Hsr$Y*ogDNNR_M><4~el0nq&*S^5WXOmFrYKcR_Y7D5x9ciz|_+*dq@J&HG) zTMzw)5O&@hwskqhWzGG7c9R|iI-voFJeZ9k`58V(-+8Pu_fmXjY@y|(2(#;*nUv3g z`O)`*UWyTm!!wU3 z7#e9nDetDc;YK0qSx0)U6FnJyR1i?C%uG#jpF=Q27=mtvF${6Q#f^Sh?F0W1y62YF0$?1hS`FuElVf+F2yrnc>m1A55SH39CEj6ts71G&Rc28?!kEAXX z)$QaLB$7bU>Nmv2=8yeKsi>&uO3cJBJ`?#xWV|ry5r6pe@1uNjI)x64=tAJ(1?5O6Qzs3~AVuUMo6A@>wY3`1D(>G%dWoJ0Y z+slG5Uyq(;yTP%Y)zWMLLChf?i@i%9_!CO~Gy2eL>fGNW^Qopf^C^q)(<&fp3+s*_1u-wE>Zdu?peH zj7XNu{Du~uJ7h4lp0Y$Z>^X2tXzYb-pT_KmDv&PQ)%Q`zQ^*qyy2V4Bq)f7o3~Xycp#g9RvoMWfR!!q&p{qQ&HBK^oF=##K6!x8eKdW-CX&)SzSUH(87Y>Ag5A%!-48^W6T*Rr$< z(Ztd}(DAtRp1tM`h9)}%;TXkT_n`i8JgpQ^I;glE$VuM*67z4`1I-=%Fvv9EOJt&` zR`B})$rdAc72LvPAfdlR8!8B3nP1Oyj>)@EffP>oGCGY3Co`~#GLVb}T4p&_q94e( zG>m*lnCbWrF+j7^ys)D}Es)jBZUyvXtEiW}r>> zb(1I~4QiRz*L8XevQx-_l;xH%0BVE`69q{|Yvq~~%BP0#Xv;HB*ra?9GOs;o1p-6w zeu9Mc-S7C8O*3A__kWtdI+%J{O@wAtF)_hO_9N~RrGUjaFvmk2bfO-Lk$l-=-}4W{ z`*q{pNydUvP)EevXi$3T`}(wS6<_cp5ML-><(;$NS_dT})1h+y%QC3Cog?1Bo>d>? zKaSZjg8`f{h)Dg13LirC?=;`XB%hvbSad7+jX*Q~-bVYBn2-E-_&naiu?sOBuX~gk z`POGl?0ZgbwSpF(q*~RTPivc-hlfu-tx>kGqv$UE^k1bx7ndMw>M7Q@a!Fu73SMN} z#QUYp2b-IZ*Sv_}J{R{tt@(UVToK|6AtH&u3Ai7{LchI*JJ6@KPiwnhKV9D{`GZn> z)GZOBKJE+%6zP`cRHi3uT`A7oK6pMpyCf!~KP$oWm3|zxzwJ%irKjO5wCN>;gfG?f zi+Oukk_KZmRb!+KgTdCH`IxXk`O9nU8nIIzjd zW@u%)c{-S_hl`D~{@K!3C!=}s^^>!qg(rSmyT7R+uysYr(g;g^UzO*=niSwlLdO-Pu8 z)6GYMqVU$BUV7_S5@D5VzVsH+wlsLm%lxU;xKYD;u0`ORPmY9Ual}`9a@$dK2${d% zR_{KzI6khH9zQN^KdLTnzCcE@{FSZGSH7~Hyz&KaEO%0S7+&xpU)zw}4EgqPKErgd zZ=XEbJ}fPor5lZfrXD}8Y(HAByuJTL^*LNV~Z= z-lg1SzNJT`O7)dWcl6J9(Kb75y!ERcWk$_=_k0}M9^GS$b_S1+qSf;L!)=o9H@}Fz z3eZZmW{FYh93K;N@X3=Wn)5*Ot(NYVZ0A-?m$q)s_iOU`{ZGxe z-@90zGq;-e9&BwteDvApfBoXir_Y|hc=;-u@(_hfX^R{($}R>e=R{m&AQ=upj@oc!w)@f5Rug`3L{$EKSRXkWHI{ZxX93Y#znCi`-di3*vMd*MGKh?lmBH<}Ge@@V ztr|son)$4Bbcvw!XBavx-oHKE2uJ*7$G)Eo-fL7Dq21tqyeL`Yg}Dd`{ZCIN>kfAI z;dX`a&}8ABcDs=}NwY{m=Coc?9nCY)QK>!SA%tw^REyF5IA!U!J~wh^X{pW34n)EV zlMZBfDZ~h!dj}nq@~Lz*KbZ<(r{usc{f+qOUE_lM3!E_&w5&x5L~x4Py{%)-f2y_0 zQT*vgR|w_QUU~8alEm}ycQ`$_U;bLyy9%#9er%+R=Y^JxN@NT3^r=<_jYJpgTS5*d zmuFZzSd9LlQ}XHbdqcvcvi;mBX#tN>seIHb)=QM=9sTG)oH6D%&FczukhPrdIUH_FtjpM~@$W=10)D6;^Qd&Jd&%m$p{v=0AJ! z=bvm{Cv0Ii{O$dZZ0Qd_RL<*f|IN+Jz>p**`)}7D9{#F7U-+M`N8#`1foY3SHe$sd zZn0t`fGr>`5ssX#6SBJhg{=coKRrJ9%vhWU7hgOO1193m?Tnqd*soN$u6_RK$&)Xu zj~_p(*0w%7Y;w!m&?z`K$2U)7^ab^d^A6u_H6L7j_VkPGzkd1Um)ZO8wz>QH%NJk1 zeD-uJzx$B8U%c9S2GxF^-+jd0=TAT1e!lhM^Q7he1GVwjN1ts!e2}-%SAQ>GQR4jB z7kPhu_4nl$&z`<`{_17ca$o&zJ$ShN*`vRzWnZGc_4n|__RFnT4?=%M_UR(9!eX5` z&*6w_9mM=*+cwL8wwwLr!BMmC12$0ZH2d56o84yrVSd$X_8<9GWK;A0J^>mIn-}|o z+S>pEpUj%z4(cY>yT5{~DxF`us2TNI{apZsPd@22$yCv8c1Twdj+dXVhiqHvsM+4Z zdvCS_*IwXYWB1z+;&i?H0N6gp|Aqb^eO&)XzcTkQ^NcC~@6G)4kL#Ir@35fVyOpCw zCtLl80d@U1SD&L5*;3p5TUI}veU#Szi#>D5oKE+ZNyxXEBNpy$LA=Ag?RamSSj2Ge zVZ8ScSKn~&QM~sE;%4`Z_yz2>PdELodVjm#e^~E7GPve>feTI)4zu%JnG~k|UT+rk z49+c=&W3X`_KW&=FLAXeaf_G%kDe$!-`y=u=6olzkCa@B8YiKxAE)RuO-&HA8fhmU zW5kE1=qZ^_#;742NvX8r1N@j(ZL>7$&54X2lB{;+x1ZKNUfr>W+Gf~`8jV!p@oe`+ z{lBI4IGT1pp!HC!!vBh{M3|JNZO@0Z*Ih)Ga%YZN`PBA$S9?vUEu6>CKmXh);d%z^ zl5BMTR!iH-d*X@4=$k$Noe3oX4eTy0*$XJ~;15qooIRR}1BzmcnDPiKuu5V(X)gM5 z4!ZX4DBM5?Wh21>hB%btOEIjHh#XS#&f@35-17Gk3>hj}HqfT^tiv}O&o&y)>c05y zTXJm7`s1!(7tg~sQ#%fTr$u0g<}hlgtf$lUP;jJ#zeO7dRId#IcY9}}0MpHkf2^<) z^*BLCHDS2yLj1K@1Z|bJiABhsY;eKDZ0B^kZ7Z2+{*vacw?Y={_)>4kJKU7{H|TGl zUA`uXmtzjpXL{)F?)eroMnS^sm+SZubjXg=DG|@r#qZ-pWSFmd!-z6_L**)9bL6QQ z&ZUQ3@lKA3iep$A-4>#-o_60-mU%Q&^}b3djc&c*@UyE{6Xp6#Gl60k|PdJokA zOH?b}E9h2P^YRlt6BzOk&8$9oau0gU+>}IPT2hP?3jUHeN(a{^OGaqZCmj#sPAP1+ z2}jE_55Vv9%~w)^9$F4!KX*`*)N$AJslx>plL)a(0zcgTU|KTMIXJR{DcdYqk zPYhlL-Rv644yEJ=hZUOrn0-lGOE*;{gf8tg{on|>cQKeMF6`Fx$w-9?{vRLj;!%v$ zA~})a)cyZ<7_(#br>81g`vMWyR@`QX_&B=*5Ke%ciSTVAaHa18L=1;-oKGm4PMSbD z_4bI!6?iu9MayR+dJ61F#BHo^on72B+}*slM|$Mp<*pjM2iolNRdNfz608>YpcS1y zGIsIV+cuw&aC6pg-rKr|MohK~{iM#ik3+TASI&EFeO<{G*LR=)@cMiH>^=QqZ+#s@ b3$~f1XD{EpuqTf +Date: Sat, 4 Aug 2018 17:40:05 +0300 +Subject: [PATCH] apparmor: use dri-enumerate abstraction + +Remove backported rule and use new dri-enumerate abstraction instead. +dri-enumerate is available in AppArmor 2.13, which recently migrated +into Debian Buster. + +Change-Id: I64919edc1882f7bc1e65cfb94686464c5350f699 +--- + sysui/desktop/apparmor/program.soffice.bin | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sysui/desktop/apparmor/program.soffice.bin b/sysui/desktop/apparmor/program.soffice.bin +index 2fc7fd6b5735..33ad6f933ef6 100644 +--- a/sysui/desktop/apparmor/program.soffice.bin ++++ b/sysui/desktop/apparmor/program.soffice.bin +@@ -82,6 +82,7 @@ profile libreoffice-soffice INSTDIR-program/soffice.bin { + #include + #include + #include ++ #include + #include + #include + #include +@@ -179,7 +179,6 @@ profile libreoffice-soffice INSTDIR-program/soffice.bin { + #Likely moving to abstractions in the future + owner @{HOME}/.icons/*/cursors/* r, + /etc/fstab r, # Solid::DeviceNotifier::instance() TODO: deny? +- /sys/devices/pci[0-9]*/**/{device,subsystem_device,subsystem_vendor,uevent,vendor} r, # for libdrm + /usr/share/*-fonts/conf.avail/*.conf r, + /usr/share/fonts-config/conf.avail/*.conf r, + /{,var/}run/udev/data/+usb:* r, # Solid::Device::listFromQuery() + +From 5054f7067cc5ee43933893b682e02540fce043b4 Mon Sep 17 00:00:00 2001 +From: Rene Engelhard +Date: Sat, 20 Jun 2020 15:33:34 +0200 +Subject: deb#962903 #include to allow /tmp/something/* + +Change-Id: I6377db152ededc4d46ba7bbbaa9bc66210964e18 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96770 +Tested-by: Jenkins +Reviewed-by: Thorsten Behrens +--- + sysui/desktop/apparmor/program.senddoc | 4 ++-- + sysui/desktop/apparmor/program.soffice.bin | 3 ++- + sysui/desktop/apparmor/program.xpdfimport | 5 ++--- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/sysui/desktop/apparmor/program.senddoc b/sysui/desktop/apparmor/program.senddoc +index d659ec9b98b3..969130f4ea90 100644 +--- a/sysui/desktop/apparmor/program.senddoc ++++ b/sysui/desktop/apparmor/program.senddoc +@@ -17,8 +17,8 @@ + profile libreoffice-senddoc INSTDIR-program/senddoc { + #include + +- owner /tmp/lu** rw, #makes files like luRRRRR.tmp/lubRRRR.tmp where R is random +- #Note, usually it's lub or luc, don't know why. ++ #include ++ + /{usr/,}bin/sh rmix, + /{usr/,}bin/bash rmix, + /{usr/,}bin/dash rmix, +diff --git a/sysui/desktop/apparmor/program.soffice.bin b/sysui/desktop/apparmor/program.soffice.bin +index 212eb7c62b15..42053db2abef 100644 +--- a/sysui/desktop/apparmor/program.soffice.bin ++++ b/sysui/desktop/apparmor/program.soffice.bin +@@ -92,6 +92,8 @@ profile libreoffice-soffice INSTDIR-program/soffice.bin { + #include + #include + ++ #include ++ + #List directories for file browser + / r, + /**/ r, +@@ -116,7 +118,6 @@ profile libreoffice-soffice INSTDIR-program/soffice.bin { + owner @{HOME}/.config/soffice.binrc.lock rwk, + owner @{HOME}/.cache/fontconfig/** rw, + owner @{HOME}/.config/gtk-???/bookmarks r, #Make bookmarks work +- owner /tmp/psp[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]* rw, #/tmp/psp1534203998 (printing to file) + + owner /{,var/}run/user/*/dconf/user rw, + owner @{HOME}/.config/dconf/user r, +diff --git a/sysui/desktop/apparmor/program.xpdfimport b/sysui/desktop/apparmor/program.xpdfimport +index efe10dce020d..f8bfbfe8fa49 100644 +--- a/sysui/desktop/apparmor/program.xpdfimport ++++ b/sysui/desktop/apparmor/program.xpdfimport +@@ -17,9 +17,8 @@ + profile libreoffice-xpdfimport INSTDIR-program/xpdfimport { + #include + +- owner /tmp/* r, #Seems to need to read file created with pattern /tmp/RRRRRR +- owner /tmp/lu** rw, #makes files like luRRRRR.tmp/lubRRRR.tmp where R is random +- #Note, usually it's lub or luc, don't know why. ++ #include ++ + /usr/share/poppler/** r, + /usr/share/libreoffice/share/config/* r, + owner @{HOME}/.config/libreoffice{,dev}/?/user/uno_packages/cache/log.txt rw, +-- +cgit v1.2.1 + diff --git a/debian/patches/apparmor-complain.diff b/debian/patches/apparmor-complain.diff new file mode 100644 index 00000000000..8f96fd3046b --- /dev/null +++ b/debian/patches/apparmor-complain.diff @@ -0,0 +1,26 @@ +diff --git a/sysui/desktop/apparmor/program.oosplash b/sysui/desktop/apparmor/program.oosplash +index fef54b7ee384..9dde31a63615 100644 +--- a/sysui/desktop/apparmor/program.oosplash ++++ b/sysui/desktop/apparmor/program.oosplash +@@ -12,7 +12,7 @@ + + #include + +-profile libreoffice-oopslash INSTDIR-program/oosplash { ++profile libreoffice-oopslash INSTDIR-program/oosplash flags=(complain) { + #include + #include + +diff --git a/sysui/desktop/apparmor/program.soffice.bin b/sysui/desktop/apparmor/program.soffice.bin +index b4baeab8f5ee..7861c9eac9bd 100644 +--- a/sysui/desktop/apparmor/program.soffice.bin ++++ b/sysui/desktop/apparmor/program.soffice.bin +@@ -60,7 +60,7 @@ + + #include + +-profile libreoffice-soffice INSTDIR-program/soffice.bin { ++profile libreoffice-soffice INSTDIR-program/soffice.bin flags=(complain) { + #include + + #include diff --git a/debian/patches/apparmor-mesa.diff b/debian/patches/apparmor-mesa.diff new file mode 100644 index 00000000000..dd6dd20a633 --- /dev/null +++ b/debian/patches/apparmor-mesa.diff @@ -0,0 +1,10 @@ +--- a/sysui/desktop/apparmor/program.soffice.bin-old 2018-11-09 23:04:59.858704214 +0100 ++++ b/sysui/desktop/apparmor/program.soffice.bin 2018-11-09 23:05:28.050949237 +0100 +@@ -87,6 +87,7 @@ + #include + #include + #include ++ #include + #include + #include + #include diff --git a/debian/patches/apparmor-opencl.diff b/debian/patches/apparmor-opencl.diff new file mode 100644 index 00000000000..462f376bca1 --- /dev/null +++ b/debian/patches/apparmor-opencl.diff @@ -0,0 +1,20 @@ +apparmor: Add opencl support + +AppArmor in Debian Buster now has OpenCL abstractions. + +Include OpenCL abstractions to fix OpenCL usage in Calc. +Index: libreoffice-6.1.4/sysui/desktop/apparmor/program.soffice.bin +=================================================================== +--- libreoffice-6.1.4.orig/sysui/desktop/apparmor/program.soffice.bin 2019-01-14 19:29:25.000000000 +0200 ++++ libreoffice-6.1.4/sysui/desktop/apparmor/program.soffice.bin 2019-01-16 18:43:17.051781559 +0200 +@@ -98,6 +98,10 @@ + + #include + ++ #include ++ #include ++ #include ++ + #List directories for file browser + / r, + /**/ r, diff --git a/debian/patches/appstream-ignore-startcenter.diff b/debian/patches/appstream-ignore-startcenter.diff new file mode 100644 index 00000000000..4251d649299 --- /dev/null +++ b/debian/patches/appstream-ignore-startcenter.diff @@ -0,0 +1,10 @@ +--- a/sysui/desktop/menus/startcenter.desktop ++++ b/sysui/desktop/menus/startcenter.desktop +@@ -31,6 +31,7 @@ StartupNotify=true + X-GIO-NoFuse=true + StartupWMClass=libreoffice-startcenter + X-KDE-Protocols=file,http,ftp,webdav,webdavs ++X-AppStream-Ignore=True + + ##Define Actions + Actions=Writer;Calc;Impress;Draw;Base;Math; diff --git a/debian/patches/build-against-shared-lpsolve.diff b/debian/patches/build-against-shared-lpsolve.diff new file mode 100644 index 00000000000..ddd80de1aaa --- /dev/null +++ b/debian/patches/build-against-shared-lpsolve.diff @@ -0,0 +1,27 @@ +diff --git a/configure.ac b/configure.ac +index cdae8b5..49f3ba2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -9468,8 +9468,9 @@ if test "$with_system_lpsolve" = "yes"; then + # some systems need this. Like Ubuntu... + AC_CHECK_LIB(m, floor) + AC_CHECK_LIB(dl, dlopen) ++ AC_CHECK_LIB(colamd, colamd) + AC_CHECK_LIB([lpsolve55], [make_lp], [:], +- [ AC_MSG_ERROR(lpsolve library not found or too old.)], []) ++ [ AC_MSG_ERROR(lpsolve library not found or too old.)], [-L/usr/lib/lp_solve]) + LIBS=$save_LIBS + else + AC_MSG_RESULT([internal]) +diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk +index a4daea7..0dea12d 100644 +--- a/RepositoryExternal.mk ++++ b/RepositoryExternal.mk +@@ -1961,6 +1961,7 @@ ifeq ($(WITH_LPSOLVER),lpsolve) + + define gb_LinkTarget__use_lpsolve + $(call gb_LinkTarget_add_libs,$(1),-llpsolve55) ++$(call gb_LinkTarget_add_ldflags,$(1),-L/usr/lib/lp_solve -Wl$(COMMA)-rpath=/usr/lib/lp_solve) + $(call gb_LinkTarget_add_defs,$(1),\ + -DSYSTEM_LPSOLVE \ + ) diff --git a/debian/patches/cppunit-optional.diff b/debian/patches/cppunit-optional.diff new file mode 100644 index 00000000000..8651a06559d --- /dev/null +++ b/debian/patches/cppunit-optional.diff @@ -0,0 +1,185 @@ +diff --git a/configure.ac b/configure.ac +index c12fe95a561c..66d327ae8fb8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2047,6 +2047,11 @@ AC_ARG_WITH(bffvalidator, + See https://www.microsoft.com/en-us/download/details.aspx?id=26794]), + ,with_bffvalidator=no) + ++libo_FUZZ_ARG_WITH(cppunit, ++ AS_HELP_STRING([--without-cppunit>], ++ [disable building(!) of cppunit stuff also built during make build]), ++,with_cppunit=yes) ++ + libo_FUZZ_ARG_WITH(junit, + AS_HELP_STRING([--with-junit=], + [Specifies the JUnit 4 jar file to use for JUnit-based tests. +@@ -7932,8 +7959,12 @@ dnl =================================================================== + dnl Check for system cppunit + dnl =================================================================== + if test "$_os" != "Android" ; then ++ if test "$with_cppunit" != "no"; then + libo_CHECK_SYSTEM_MODULE([cppunit],[CPPUNIT],[cppunit >= 1.14.0]) ++ ENABLE_CPPUNIT=TRUE ++ fi + fi ++AC_SUBST(ENABLE_CPPUNIT) + + dnl =================================================================== + dnl Check whether freetype is available +diff --git a/config_host.mk.in b/config_host.mk.in +index 880895e3c00f..a3dab3e00979 100644 +--- a/config_host.mk.in ++++ b/config_host.mk.in +@@ -114,6 +115,7 @@ export SYSTEM_COINMP=@SYSTEM_COINMP@ + export SYSTEM_COINMP=@SYSTEM_COINMP@ + export COINMP_CFLAGS=@COINMP_CFLAGS@ + export COINMP_LIBS=@COINMP_LIBS@ ++export ENABLE_CPPUNIT=@ENABLE_CPPUNIT@ + export ENABLE_CUPS=@ENABLE_CUPS@ + export ENABLE_CURL=@ENABLE_CURL@ + export ENABLE_FUZZERS=@ENABLE_FUZZERS@ +diff --git a/sal/Module_sal.mk b/sal/Module_sal.mk +index fe9523a7a6e2..719edf8c6252 100644 +--- a/sal/Module_sal.mk ++++ b/sal/Module_sal.mk +@@ -10,7 +10,6 @@ + $(eval $(call gb_Module_Module,sal)) + + $(eval $(call gb_Module_add_targets,sal,\ +- $(if $(CROSS_COMPILING),,$(if $(filter TRUE,$(DISABLE_DYNLOADING)),,Executable_cppunittester)) \ + $(if $(filter $(OS),ANDROID), \ + Library_lo-bootstrap) \ + Library_sal \ +@@ -33,4 +32,10 @@ $(eval $(call gb_Module_add_check_targets,sal,\ + + endif + ++ifeq ($(ENABLE_CPPUNIT),TRUE) ++$(eval $(call gb_Module_add_check_targets,sal,\ ++ $(if $(CROSS_COMPILING),,$(if $(filter TRUE,$(DISABLE_DYNLOADING)),,Executable_cppunittester)) \ ++)) ++endif ++ + # vim: set noet sw=4 ts=4: +diff --git a/sdext/Executable_pdf2xml.mk b/sdext/Executable_pdf2xml.mk +index 373f40da36fd..c0401bef9c7a 100644 +--- a/sdext/Executable_pdf2xml.mk ++++ b/sdext/Executable_pdf2xml.mk +@@ -13,10 +13,10 @@ $(eval $(call gb_Executable_use_sdk_api,pdf2xml)) + + $(eval $(call gb_Executable_use_externals,pdf2xml,\ + boost_headers \ +- cppunit \ + zlib \ + )) + ++ + $(eval $(call gb_Executable_set_include,pdf2xml,\ + -I$(SRCDIR)/sdext/source/pdfimport/inc \ + $$(INCLUDE) \ +@@ -27,13 +27,21 @@ $(eval $(call gb_Executable_use_libraries,pdf2xml,\ + vcl \ + comphelper \ + cppu \ +- unotest \ + cppuhelper \ + sal \ + tl \ + xo \ + )) + ++ifeq ($(ENABLE_CPPUNIT),TRUE) ++$(eval $(call gb_Executable_use_externals,pdf2xml,\ ++ cppunit \ ++)) ++$(eval $(call gb_Executable_use_libraries,pdf2xml,\ ++ unotest \ ++)) ++endif ++ + $(eval $(call gb_Executable_use_library_objects,pdf2xml,pdfimport)) + + $(eval $(call gb_Executable_add_exception_objects,pdf2xml,\ +diff --git a/smoketest/Module_smoketest.mk b/smoketest/Module_smoketest.mk +index 7e8b6d5f11f6..a084e254bf70 100644 +--- a/smoketest/Module_smoketest.mk ++++ b/smoketest/Module_smoketest.mk +@@ -12,6 +12,8 @@ $(eval $(call gb_Module_Module,smoketest)) + + ifeq ($(CROSS_COMPILING),) + ++ifeq ($(ENABLE_CPPUNIT),TRUE) ++ + $(eval $(call gb_Module_add_targets,smoketest,\ + Library_smoketest \ + Zip_smoketestdoc \ +@@ -42,6 +44,8 @@ endif + + endif + ++endif ++ + ifneq ($(ENABLE_JAVA),) + $(eval $(call gb_Module_add_targets,smoketest,\ + Jar_smoketest \ +diff --git a/test/Module_test.mk b/test/Module_test.mk +index e1051f16b5a0..d1787cb5789b 100644 +--- a/test/Module_test.mk ++++ b/test/Module_test.mk +@@ -11,6 +11,7 @@ $(eval $(call gb_Module_Module,test)) + + ifneq (,$(filter DESKTOP,$(BUILD_TYPE))) + ++ifeq ($(ENABLE_CPPUNIT),TRUE) + $(eval $(call gb_Module_add_targets,test,\ + Library_test \ + Library_test_setupvcl \ +@@ -18,6 +19,7 @@ $(eval $(call gb_Module_add_targets,test,\ + $(eval $(call gb_Module_add_check_targets,test,\ + CppunitTest_test_xpath \ + )) ++endif + + endif + +diff --git a/unotest/Module_unotest.mk b/unotest/Module_unotest.mk +index a47ca5d4b694..e243e06309f5 100644 +--- a/unotest/Module_unotest.mk ++++ b/unotest/Module_unotest.mk +@@ -11,12 +11,15 @@ + $(eval $(call gb_Module_Module,unotest)) + + ifneq (,$(filter DESKTOP,$(BUILD_TYPE))) ++ ++ifeq ($(ENABLE_CPPUNIT),TRUE) + $(eval $(call gb_Module_add_targets,unotest,\ + Library_unobootstrapprotector \ + Library_unoexceptionprotector \ + Library_unotest \ + )) + endif ++endif + + ifneq ($(ENABLE_JAVA),) + $(eval $(call gb_Module_add_targets,unotest,\ +diff --git a/testtools/Module_testtools.mk b/testtools/Module_testtools.mk +index a1b84e175b30..08e4aad24c11 100644 +--- a/testtools/Module_testtools.mk ++++ b/testtools/Module_testtools.mk +@@ -11,6 +11,8 @@ $(eval $(call gb_Module_Module,testtools)) + + ifeq ($(CROSS_COMPILING),) + ++ifeq ($(ENABLE_CPPUNIT),TRUE) ++ + $(eval $(call gb_Module_add_targets,testtools,\ + CustomTarget_bridgetest \ + InternalUnoApi_bridgetest \ +@@ -41,4 +43,6 @@ $(eval $(call gb_Module_add_check_targets,testtools,\ + + endif + ++endif ++ + # vim:set noet sw=4 ts=4: diff --git a/debian/patches/debian-debug.diff b/debian/patches/debian-debug.diff new file mode 100644 index 00000000000..77070f6f793 --- /dev/null +++ b/debian/patches/debian-debug.diff @@ -0,0 +1,47 @@ +diff --git a/solenv/gbuild/platform/com_GCC_defs.mk b/solenv/gbuild/platform/com_GCC_defs.mk +index 9de88a2..9161a4e 100644 +--- a/solenv/gbuild/platform/com_GCC_defs.mk ++++ b/solenv/gbuild/platform/com_GCC_defs.mk +@@ -170,6 +170,8 @@ gb_COMPILERNOOPTFLAGS := -O0 -fstrict-aliasing -fstrict-overflow + ifeq ($(OS),ANDROID) + gb_DEBUGINFO_FLAGS=-glldb + # Clang does not know -ggdb2 or some other options ++else ifeq ($(enable_symbols),SMALL) ++gb_DEBUGINFO_FLAGS=-g1 + else ifeq ($(HAVE_GCC_GGDB2),TRUE) + gb_DEBUGINFO_FLAGS=-ggdb2 + else +diff --git a/configure.ac b/configure.ac +index 2d62af9981a9..b1ad5a970700 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4056,6 +4056,9 @@ fi + if test "$enable_symbols" = yes; then + ENABLE_SYMBOLS_FOR=all + AC_MSG_RESULT([yes]) ++elif test "$enable_symbols" = "SMALL" -o "$enable_symbols" = "small"; then ++ ENABLE_SYMBOLS_FOR=all ++ AC_MSG_RESULT([yes, small ones]) + elif test "$enable_symbols" = no; then + ENABLE_SYMBOLS_FOR= + AC_MSG_RESULT([no]) +@@ -4064,6 +4067,7 @@ else + ENABLE_SYMBOLS_FOR="$enable_symbols" + AC_MSG_RESULT([for "$enable_symbols"]) + fi ++AC_SUBST(enable_symbols) + AC_SUBST(ENABLE_SYMBOLS_FOR) + + if test -n "$with_android_ndk" -a \( -n "$ENABLE_SYMBOLS" -o -n "$ENABLE_DEBUG" -o -n "$ENABLE_DBGUTIL" \) -a "$ENABLE_DEBUGINFO_FOR" = "all"; then +diff --git a/config_host.mk.in b/config_host.mk.in +index 7df26713a1dd..174c4e50466c 100644 +--- a/config_host.mk.in ++++ b/config_host.mk.in +@@ -208,6 +209,7 @@ export ENABLE_SDREMOTE_BLUETOOTH=@ENABLE_SDREMOTE_BLUETOOTH@ + export ENABLE_SILENT_MSI=@ENABLE_SILENT_MSI@ + export ENABLE_SKIA=@ENABLE_SKIA@ + export ENABLE_SKIA_DEBUG=@ENABLE_SKIA_DEBUG@ ++export enable_symbols=@enable_symbols@ + export ENABLE_SYMBOLS_FOR=@ENABLE_SYMBOLS_FOR@ + export ENABLE_VALGRIND=@ENABLE_VALGRIND@ + export ENABLE_VLC=@ENABLE_VLC@ diff --git a/debian/patches/debian-hardened-buildflags-CPPFLAGS.diff b/debian/patches/debian-hardened-buildflags-CPPFLAGS.diff new file mode 100644 index 00000000000..36394f3af05 --- /dev/null +++ b/debian/patches/debian-hardened-buildflags-CPPFLAGS.diff @@ -0,0 +1,37 @@ +--- a/configure.ac-old 2012-03-02 21:48:47.000000000 +0000 ++++ b/configure.ac 2012-03-02 21:51:29.000000000 +0000 +@@ -10225,6 +10225,11 @@ else + fi + AC_SUBST(ENABLE_VLC) + ++if test -x /usr/bin/dpkg-buildflags; then ++ HARDEN_CPPFLAGS=`dpkg-buildflags --get CPPFLAGS 2>/dev/null` ++fi ++AC_SUBST(HARDEN_CPPFLAGS) ++ + ENABLE_OPENGL_TRANSITIONS= + ENABLE_OPENGL_CANVAS= + if test $_os = iOS -o $_os = Android -o "$ENABLE_FUZZERS" = "TRUE"; then +--- a/config_host.mk.in-old 2012-04-06 14:17:55.164239390 +0200 ++++ b/config_host.mk.in 2012-04-06 14:18:55.440239065 +0200 +@@ -76,6 +76,7 @@ + export CPPUNIT_LIBS=$(gb_SPACE)@CPPUNIT_LIBS@ + export CPUNAME=@CPUNAME@ + export CDEFAULTOPT=@CDEFAULTOPT@ ++export HARDEN_CPPFLAGS=@HARDEN_CPPFLAGS@ + export CROSS_COMPILING=@CROSS_COMPILING@ + export CURL=@CURL@ + export CURL_CFLAGS=$(gb_SPACE)@CURL_CFLAGS@ +diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk +index c71cb40..f826d65 100644 +--- a/solenv/gbuild/gbuild.mk ++++ b/solenv/gbuild/gbuild.mk +@@ -259,6 +259,8 @@ gb_GLOBALDEFS += \ + ENABLE_LTO \ + ) + ++gb_GLOBALDEFS += $(HARDEN_CPPFLAGS) ++ + gb_GLOBALDEFS := $(sort $(gb_GLOBALDEFS)) + + # Common environment variables passed into all gb_*Test classes: diff --git a/debian/patches/debian-hardened-buildflags-no-LO-fstack-protector-strong.diff b/debian/patches/debian-hardened-buildflags-no-LO-fstack-protector-strong.diff new file mode 100644 index 00000000000..e9c49efd608 --- /dev/null +++ b/debian/patches/debian-hardened-buildflags-no-LO-fstack-protector-strong.diff @@ -0,0 +1,32 @@ +don't hardcode -fstack-protector-strong in configure.ac/gbuild. We get the +hardening flags from dpkg-buildflags anyway. + +diff --git a/solenv/gbuild/platform/com_GCC_defs.mk b/solenv/gbuild/platform/com_GCC_defs.mk +index 712a61df544f..0d50f538ba7b 100644 +--- a/solenv/gbuild/platform/com_GCC_defs.mk ++++ b/solenv/gbuild/platform/com_GCC_defs.mk +@@ -67,7 +67,6 @@ gb_CFLAGS_COMMON := \ + -fmessage-length=0 \ + -fno-common \ + -pipe \ +- -fstack-protector-strong \ + $(if $(gb_COLOR),-fdiagnostics-color=always) \ + + gb_CXXFLAGS_COMMON := \ +@@ -82,7 +81,6 @@ gb_CXXFLAGS_COMMON := \ + -fmessage-length=0 \ + -fno-common \ + -pipe \ +- -fstack-protector-strong \ + $(if $(gb_COLOR),-fdiagnostics-color=always) \ + + ifeq ($(HAVE_WDEPRECATED_COPY_DTOR),TRUE) +@@ -136,8 +134,6 @@ endif + gb_VISIBILITY_FLAGS_CXX := -fvisibility-inlines-hidden + gb_CXXFLAGS_COMMON += $(gb_VISIBILITY_FLAGS_CXX) + +-gb_LinkTarget_LDFLAGS += -fstack-protector-strong +- + ifneq ($(gb_ENABLE_PCH),) + ifeq ($(COM_IS_CLANG),TRUE) + # Clang by default includes in the PCH timestamps of the files it was diff --git a/debian/patches/debian-opt.diff b/debian/patches/debian-opt.diff new file mode 100644 index 00000000000..96784e674cf --- /dev/null +++ b/debian/patches/debian-opt.diff @@ -0,0 +1,26 @@ +diff --git a/configure.ac b/configure.ac +index f06ef8e..91ce612 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -12776,6 +12776,9 @@ fi + fi + fi + ++CDEFAULTOPT=`echo $CFLAGS 2>/dev/null | grep -E -o "\-O[[0-3]]"` ++AC_SUBST(CDEFAULTOPT) ++ + dnl =================================================================== + dnl Setting up the environment. + dnl =================================================================== +diff --git a/config_host.mk.in b/config_host.mk.in +index 1ec3268..abb45b1 100644 +--- a/config_host.mk.in ++++ b/config_host.mk.in +@@ -69,6 +69,7 @@ export CPP_LIBRARY=@CPP_LIBRARY@ + export CPPUNIT_CFLAGS=$(gb_SPACE)@CPPUNIT_CFLAGS@ + export CPPUNIT_LIBS=$(gb_SPACE)@CPPUNIT_LIBS@ + export CPUNAME=@CPUNAME@ ++export CDEFAULTOPT=@CDEFAULTOPT@ + export CROSS_COMPILING=@CROSS_COMPILING@ + export CURL=@CURL@ + export CURL_CFLAGS=$(gb_SPACE)@CURL_CFLAGS@ diff --git a/debian/patches/disable-flaky-tests.diff b/debian/patches/disable-flaky-tests.diff new file mode 100644 index 00000000000..d0332062132 --- /dev/null +++ b/debian/patches/disable-flaky-tests.diff @@ -0,0 +1,140 @@ +14:13 < mst__> _rene_, the toolkit unoapi tests are known to be flaky (in some + system dependent way) e.g. on the Win@6 tinderbox it always + crashes +14:14 < mst__> _rene_, sc.ScAccessible* tests also fail on some systems some of + the time + +diff --git a/toolkit/Module_toolkit.mk b/toolkit/Module_toolkit.mk +index 25db0b6..14e507c 100644 +--- a/toolkit/Module_toolkit.mk ++++ b/toolkit/Module_toolkit.mk +@@ -26,11 +26,11 @@ $(eval $(call gb_Module_add_targets,toolkit,\ + ifneq ($(OOO_JUNIT_JAR),) + $(eval $(call gb_Module_add_subsequentcheck_targets,toolkit,\ + JunitTest_toolkit_complex \ +- JunitTest_toolkit_unoapi_1 \ +- JunitTest_toolkit_unoapi_2 \ +- JunitTest_toolkit_unoapi_3 \ +- JunitTest_toolkit_unoapi_4 \ + )) + endif ++# JunitTest_toolkit_unoapi_1 \ ++# JunitTest_toolkit_unoapi_2 \ ++# JunitTest_toolkit_unoapi_3 \ ++# JunitTest_toolkit_unoapi_4 \ + + # vim: set noet sw=4 ts=4: +diff --git a/sc/qa/unoapi/sc_1.sce b/sc/qa/unoapi/sc_1.sce +index fa1684c..cc8e1a5 100644 +--- a/sc/qa/unoapi/sc_1.sce ++++ b/sc/qa/unoapi/sc_1.sce +@@ -24,10 +24,3 @@ + # i84554 -o sc.AccessibleEditableTextPara_PreviewNote + # i88241 -o sc.AccessibleEditableTextPara_HeaderFooter + -o sc.AccessibleEditableTextPara_PreviewCell +--o sc.ScAccessibleCell +-# i91044 -o sc.ScAccessibleCsvCell +-# i91044 -o sc.ScAccessibleCsvGrid +-# i84641 -o sc.ScAccessibleCsvRuler +-# i88330 -o sc.ScAccessibleDocument +-# i91045 -o sc.ScAccessibleDocumentPagePreview +--o sc.ScAccessiblePageHeader +diff --git a/sc/qa/unoapi/sc_2.sce b/sc/qa/unoapi/sc_2.sce +index dbfc3e1..d235c5d 100644 +--- a/sc/qa/unoapi/sc_2.sce ++++ b/sc/qa/unoapi/sc_2.sce +@@ -15,11 +15,6 @@ + # except in compliance with the License. You may obtain a copy of + # the License at http://www.apache.org/licenses/LICENSE-2.0 . + # +-# fdo#FOO -o sc.ScAccessiblePageHeaderArea +--o sc.ScAccessiblePreviewCell +--o sc.ScAccessiblePreviewHeaderCell +--o sc.ScAccessiblePreviewTable +-# fdo#45337 -o sc.ScAccessibleSpreadsheet + # FIXME_REMOVE_WHEN_RE_BASE_COMPLETE + # -o sc.ScAnnotationShapeObj + -o sc.ScAutoFormatFieldObj + +diff --git a/svx/qa/unoapi/svx.sce b/svx/qa/unoapi/svx.sce +index 1c3925f..a16f001 100644 +--- a/svx/qa/unoapi/svx.sce ++++ b/svx/qa/unoapi/svx.sce +@@ -25,7 +25,7 @@ + #i111216 -o svx.AccessiblePresentationGraphicShape + #i111216 -o svx.AccessiblePresentationOLEShape + #i85539 -o svx.AccessiblePresentationShape +--o svx.AccessibleShape ++#-o svx.AccessibleShape + #i90294 -o svx.GraphicExporter + -o svx.SvxDrawPage + #i85501 -o svx.SvxGraphCtrlAccessibleContext + +19:26 <@x1sc0> _rene_, since that test is using exact dimensions, it seems it + fails on your side probably because the paragraph style is + different. 1. I will change the test to avoid the exact + dimensions. 2. meantime you can skip that test: +https://cgit.freedesktop.org/libreoffice/core/commit/?id=e05f16e6bf36efbaab16dd2ed1427a750ce7cafd +19:26 < IZBot> core - disable UI test that does exact comparison +19:27 < _rene_> mmh, ok, saw that but that was for a different test, so.. :) +19:27 -!- jacobo [~jaragunde@fanzine.igalia.com] has quit [Quit: Leaving.] +19:27 < _rene_> thanks, will do + +diff --git a/uitest/writer_tests/tdf79236.py b/uitest/writer_tests/tdf79236.py +index 8585e48d8c64..704f42c009a1 100644 +--- a/uitest/writer_tests8/tdf79236.py ++++ b/uitest/writer_tests8/tdf79236.py +@@ -8,8 +8,11 @@ from uitest.framework import UITestCase + import time + from uitest.uihelper.common import get_state_as_dict, type_text + ++import unittest ++ + class tdf79236(UITestCase): + ++ @unittest.skip("Currently broken") + def test_paragraph(self): + + self.ui_test.create_doc_in_start_center("writer") + +14:39 < ztamas> _rene_: chart2dump is used to fail because of font size differences, just use a bigger delta or disable it if it + fails for you. +14:40 <@sberg_> noelgrandin, no +14:40 < noelgrandin> sberg_, sure seems that way both in the debugger and in the resulting SAL_WARN output +14:42 < ztamas> _rene_: there were some work on making font rendering consistent on different platforms, but it's not finished + yet, I guess +diff --git a/chart2/Module_chart2.mk b/chart2/Module_chart2.mk +index 3273055d5373..cb452139170c 100644 +--- a/chart2/Module_chart2.mk ++++ b/chart2/Module_chart2.mk +@@ -33,9 +33,9 @@ $(eval $(call gb_Module_add_slowcheck_targets,chart2,\ + CppunitTest_chart2_export \ + CppunitTest_chart2_import \ + CppunitTest_chart2_trendcalculators \ +- CppunitTest_chart2_dump \ + CppunitTest_chart2_pivot_chart_test \ + )) ++# CppunitTest_chart2_dump \ + + ifeq ($(ENABLE_CHART_TESTS),TRUE) + ifeq ($(WITH_FONTS), TRUE) +diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx +index d75a8c0dc4fe..e768da479823 100644 +--- a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx ++++ b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx +@@ -312,13 +312,13 @@ DECLARE_OOXMLIMPORT_TEST(testTextCopy, "text-copy.docx") + CPPUNIT_ASSERT(xHeaderShapes->hasMoreElements()); + } + +-DECLARE_OOXMLIMPORT_TEST(testTdf112443, "tdf112443.docx") ++/*DECLARE_OOXMLIMPORT_TEST(testTdf112443, "tdf112443.docx") + { + // the position of the flying text frame should be off page + // 30624 below its anchor + OUString aTop = parseDump("//fly[1]/infos/bounds", "top"); + CPPUNIT_ASSERT_EQUAL(OUString("30624"), aTop); +-} ++}*/ + + // DOCX: Textbox wrap differs in MSO and LO + // Both should layout text regardless of existing text box diff --git a/debian/patches/disable-java-in-odk-build-examples-on-zero-vm.diff b/debian/patches/disable-java-in-odk-build-examples-on-zero-vm.diff new file mode 100644 index 00000000000..1935360924b --- /dev/null +++ b/debian/patches/disable-java-in-odk-build-examples-on-zero-vm.diff @@ -0,0 +1,58 @@ +diff --git a/config_host.mk.in b/config_host.mk.in +index 8cbbc5fee1d5..40e37643a0ea 100644 +--- a/config_host.mk.in ++++ b/config_host.mk.in +@@ -282,6 +282,7 @@ export JAVAFLAGS=@JAVAFLAGS@ + export JAVAIFLAGS=@JAVAIFLAGS@ + export JAVA_CLASSPATH_NOT_SET=@JAVA_CLASSPATH_NOT_SET@ + export JAVAINTERPRETER=@JAVAINTERPRETER@ ++export JAVA_HAS_ZERO_VM=@JAVA_HAS_ZERO_VM@ + export JAVA_HOME=@JAVA_HOME@ + export JAVA_SOURCE_VER=@JAVA_SOURCE_VER@ + export JAVA_TARGET_VER=@JAVA_TARGET_VER@ +diff --git a/configure.ac b/configure.ac +index e6bfb13ebab8..3b7f0a2e1121 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6675,6 +6675,14 @@ you must use the "--with-jdk-home" configure option explicitly]) + JAVAIFLAGS=-Xmx64M + # set to limit VM usage for javac + JAVAFLAGS=-J-Xmx128M ++ ++ AC_MSG_CHECKING([whether $JAVAINTERPRETER is using the Zero VM]) ++ if $JAVAINTERPRETER -version 2>&1 | grep -q Zero; then ++ JAVA_HAS_ZERO_VM=y ++ AC_MSG_RESULT([yes]) ++ else ++ AC_MSG_RESULT([no]) ++ fi + fi + else + AC_MSG_ERROR([Java not found. You need at least JDK 9]) +@@ -6684,6 +6689,7 @@ else + JAVA_HOME= + export JAVA_HOME + fi ++AC_SUBST(JAVA_HAS_ZERO_VM) + + dnl =================================================================== + dnl Checks for javac +diff --git a/odk/Module_odk.mk b/odk/Module_odk.mk +index 410f8cf8ef1e..bd05d4bba200 100644 +--- a/odk/Module_odk.mk ++++ b/odk/Module_odk.mk +@@ -60,10 +62,14 @@ $(eval $(call gb_Module_add_check_targets,odk,\ + ifneq ($(filter $(OS),LINUX MACOSX),) + $(eval $(call gb_Module_add_subsequentcheck_targets,odk, \ + CustomTarget_build-examples \ ++)) ++ifneq ($(JAVA_HAS_ZERO_VM),y) ++$(eval $(call gb_Module_add_subsequentcheck_targets,odk, \ + $(if $(ENABLE_JAVA),\ + CustomTarget_build-examples_java \ + ) \ + )) + endif ++endif + + # vim: set noet sw=4 ts=4: diff --git a/debian/patches/disable-shortcuts_tab_navigation-uitest.diff b/debian/patches/disable-shortcuts_tab_navigation-uitest.diff new file mode 100644 index 00000000000..49a2b7487ef --- /dev/null +++ b/debian/patches/disable-shortcuts_tab_navigation-uitest.diff @@ -0,0 +1,49 @@ +diff --git a/cui/qa/uitest/dialogs/shortcuts.py b/cui/qa/uitest/dialogs/shortcuts.py +deleted file mode 100644 +index 8a52ee42315a..000000000000 +--- a/cui/qa/uitest/dialogs/shortcuts.py ++++ /dev/null +@@ -1,43 +0,0 @@ +-# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*- +-# +-# This Source Code Form is subject to the terms of the Mozilla Public +-# License, v. 2.0. If a copy of the MPL was not distributed with this +-# file, You can obtain one at http://mozilla.org/MPL/2.0/. +-# +- +-from uitest.framework import UITestCase +-from uitest.uihelper.common import select_pos +-from libreoffice.uno.propertyvalue import mkPropertyValues +-from uitest.uihelper.common import get_state_as_dict +- +-class Test(UITestCase): +- +- def test_tab_navigation(self): +- self.ui_test.create_doc_in_start_center("writer") +- xWriterDoc = self.xUITest.getTopFocusWindow() +- xWriterEdit = xWriterDoc.getChild("writer_edit") +- +- self.ui_test.execute_dialog_through_command(".uno:EditStyle") #open style dialog +- xDialog = self.xUITest.getTopFocusWindow() +- +- xTabs = xDialog.getChild("tabcontrol") +- select_pos(xTabs, "0") +- +- for i in range(16): +- self.assertEqual(get_state_as_dict(xTabs)["CurrPagePos"], str(i)) +- +- xTabs.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+PAGEDOWN"})) +- +- self.assertEqual(get_state_as_dict(xTabs)["CurrPagePos"], "0") +- +- for i in reversed(range(16)): +- xTabs.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+PAGEUP"})) +- +- self.assertEqual(get_state_as_dict(xTabs)["CurrPagePos"], str(i)) +- +- xOkBtn = xDialog.getChild("ok") +- xOkBtn.executeAction("CLICK", tuple()) +- +- self.ui_test.close_doc() +- +-# vim: set shiftwidth=4 softtabstop=4 expandtab: diff --git a/debian/patches/disable-unused-test-programs.diff b/debian/patches/disable-unused-test-programs.diff new file mode 100644 index 00000000000..c1402c61565 --- /dev/null +++ b/debian/patches/disable-unused-test-programs.diff @@ -0,0 +1,70 @@ +diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk +index a5e4bf5d68d2..3e9e1bf9fe27 100644 +--- a/vcl/Module_vcl.mk ++++ b/vcl/Module_vcl.mk +@@ -28,28 +28,9 @@ $(eval $(call gb_Module_add_targets,vcl,\ + StaticLibrary_vclmain \ + $(if $(ENABLE_MACOSX_SANDBOX),, \ + $(if $(DISABLE_GUI),, \ +- Executable_ui-previewer)) \ +- $(if $(filter LINUX MACOSX SOLARIS WNT %BSD,$(OS)), \ +- Executable_outdevgrind \ +- $(if $(DISABLE_GUI),, \ +- Executable_vcldemo \ +- Executable_icontest \ +- Executable_visualbackendtest \ +- Executable_mtfdemo ))) \ ++ Executable_ui-previewer))) \ + )) + +-ifeq ($(CROSS_COMPILING)$(DISABLE_DYNLOADING),) +- +-$(eval $(call gb_Module_add_targets,vcl,\ +- $(if $(filter-out ANDROID iOS WNT,$(OS)), \ +- Executable_svdemo \ +- Executable_fftester \ +- Executable_svptest \ +- Executable_svpclient) \ +-)) +- +-endif +- + $(eval $(call gb_Module_add_l10n_targets,vcl,\ + AllLangMoTarget_vcl \ + )) +diff --git a/xmlsecurity/Module_xmlsecurity.mk b/xmlsecurity/Module_xmlsecurity.mk +index d3fafeb7e4ec..87b8c067903e 100644 +--- a/xmlsecurity/Module_xmlsecurity.mk ++++ b/xmlsecurity/Module_xmlsecurity.mk +@@ -45,14 +45,6 @@ $(eval $(call gb_Module_add_screenshot_targets,xmlsecurity,\ + CppunitTest_xmlsecurity_dialogs_test \ + )) + +-ifneq (,$(filter DESKTOP,$(BUILD_TYPE))) +- +-$(eval $(call gb_Module_add_targets,xmlsecurity,\ +- Executable_pdfverify \ +-)) +- +-endif +- + endif + + # vim: set noet sw=4 ts=4: +diff --git a/libreofficekit/Module_libreofficekit.mk b/libreofficekit/Module_libreofficekit.mk +index 351f89a33e48..defe0b14a681 100644 +--- a/libreofficekit/Module_libreofficekit.mk ++++ b/libreofficekit/Module_libreofficekit.mk +@@ -23,12 +23,10 @@ $(eval $(call gb_Module_add_check_targets,libreofficekit, \ + ifneq ($(ENABLE_GTK3),) + $(eval $(call gb_Module_add_targets,libreofficekit,\ + Library_libreofficekitgtk \ +- Executable_gtktiledviewer \ + )) + endif # ($(ENABLE_GTK3),) + + $(eval $(call gb_Module_add_targets,libreofficekit,\ +- Executable_tilebench \ + Package_selectionhandles \ + UIConfig_libreofficekit \ + )) diff --git a/debian/patches/disableClassPathURLCheck.diff b/debian/patches/disableClassPathURLCheck.diff new file mode 100644 index 00000000000..65c70712602 --- /dev/null +++ b/debian/patches/disableClassPathURLCheck.diff @@ -0,0 +1,10 @@ +--- a/configure.ac-old 2018-11-12 06:51:15.504128408 +0100 ++++ b/configure.ac 2018-11-12 06:52:32.427358015 +0100 +@@ -6898,6 +6898,7 @@ + + # set to limit VM usage for JunitTests + JAVAIFLAGS=-Xmx64M ++ JAVAIFLAGS="$JAVAIFLAGS -Djdk.net.URLClassPath.disableClassPathURLCheck=true" + # set to limit VM usage for javac + JAVAFLAGS=-J-Xmx128M + diff --git a/debian/patches/do-not-hide-test-output.diff b/debian/patches/do-not-hide-test-output.diff new file mode 100644 index 00000000000..37204149cd5 --- /dev/null +++ b/debian/patches/do-not-hide-test-output.diff @@ -0,0 +1,99 @@ +diff --git a/odk/build-examples_common.mk b/odk/build-examples_common.mk +index abcb3a3e2593..35d45ad23413 100644 +--- a/odk/build-examples_common.mk ++++ b/odk/build-examples_common.mk +@@ -49,12 +49,7 @@ else + && printf 'yes\n' | LC_ALL=C make \ + CC="$(CXX)" LINK="$(CXX)" LIB="$(CXX)" \ + $(if $(MACOSX_SHELL_HACK), SHELL="$$$$ODK_BUILD_SHELL", ))) \ +- $(if $(MACOSX_SHELL_HACK),&& rm -f "$$$$ODK_BUILD_SHELL")) \ +- >$(call gb_CustomTarget_get_workdir,$(1))/log 2>&1 \ +- || (RET=$$$$? \ +- $(if $(MACOSX_SHELL_HACK), && rm -f "$$$$ODK_BUILD_SHELL" , ) \ +- && cat $(call gb_CustomTarget_get_workdir,$(1))/log \ +- && exit $$$$RET) ++ 2>&1 ) + endif + + $(call gb_CustomTarget_get_workdir,$(1))/setsdkenv: \ +diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk +index 45af5c9b25a7..7933fc84c8b2 100644 +--- a/solenv/gbuild/CppunitTest.mk ++++ b/solenv/gbuild/CppunitTest.mk +@@ -139,12 +139,7 @@ else + ; RET=$$? && $(gb_CppunitTest_POSTGDBTRACE) && (exit $$RET)) \ + $(if $(gb_CppunitTest_localized),|| exit $$?; done) \ + ) \ +- $(if $(gb_CppunitTest__interactive),, \ +- > $@.log 2>&1 \ +- || ($(if $(value gb_CppunitTest_postprocess), \ +- RET=$$?; \ +- $(call gb_CppunitTest_postprocess,$(gb_CppunitTest_CPPTESTCOMMAND),$@.core,$$RET) >> $@.log 2>&1;) \ +- cat $@.log; $(gb_CppunitTest_UNITTESTFAILED) Cppunit $*))) ++ 2>&1) + $(call gb_Trace_EndRange,$*,CUT) + endif + +diff --git a/solenv/gbuild/JunitTest.mk b/solenv/gbuild/JunitTest.mk +index 36f29b50ef28..3ac4603ff6a0 100644 +--- a/solenv/gbuild/JunitTest.mk ++++ b/solenv/gbuild/JunitTest.mk +@@ -44,17 +44,7 @@ else + -classpath "$(T_CP)" \ + $(DEFS) \ + org.junit.runner.JUnitCore \ +- $(CLASSES) > $@.log 2>&1 || \ +- (cat $@.log \ +- && echo "to rerun just this failed test without all others, run:" \ +- && echo && echo " make JunitTest_$*" && echo \ +- && echo "cd into the module dir to run the tests faster" \ +- && echo "Or to do interactive debugging, run two shells with:" \ +- && echo \ +- && echo " make debugrun" \ +- && echo " make gb_JunitTest_DEBUGRUN=T JunitTest_$*" \ +- && echo \ +- && false))) ++ $(CLASSES) 2>&1)) + $(CLEAN_CMD) + $(call gb_Trace_EndRange,$*,JUT) + endif +diff --git a/solenv/gbuild/UITest.mk b/solenv/gbuild/UITest.mk +index 03d30448ef7b..5628e47866f8 100644 +--- a/solenv/gbuild/UITest.mk ++++ b/solenv/gbuild/UITest.mk +@@ -77,16 +77,7 @@ else + --userdir=$(call gb_Helper_make_url,$(dir $(call gb_UITest_get_target,$*))user) \ + --dir=$(strip $(MODULES)) \ + $(gb_UITest_GDBTRACE) \ +- $(if $(gb_UITest__interactive),, \ +- > $@.log 2>&1 \ +- || ($(if $(value gb_CppunitTest_postprocess), \ +- RET=$$?; \ +- $(call gb_CppunitTest_postprocess,$(gb_UITest_EXECUTABLE_GDB),$@.core,$$RET) >> $@.log 2>&1;) \ +- $(if $(filter WNT,$(OS)), \ +- printf '%s: <<<\n' $(dir $(call gb_UITest_get_target,$*))/soffice.out.log; \ +- cat $(dir $(call gb_UITest_get_target,$*))/soffice.out.log; \ +- printf ' >>>\n\n';) \ +- cat $@.log; $(gb_UITest_UNITTESTFAILED) UI $*)))) ++ 2>&1)) + $(call gb_Trace_EndRange,$*,UIT) + endif + +diff --git a/solenv/gbuild/PythonTest.mk b/solenv/gbuild/PythonTest.mk +index 9b0590e35d2a..3a1d7d9caceb 100644 +--- a/solenv/gbuild/PythonTest.mk ++++ b/solenv/gbuild/PythonTest.mk +@@ -58,12 +58,7 @@ else + $(ICECREAM_RUN) $(gb_CppunitTest_GDBTRACE) $(gb_CppunitTest_VALGRINDTOOL) $(gb_CppunitTest_RR) \ + $(gb_PythonTest_COMMAND) \ + $(if $(PYTHON_TEST_NAME),$(PYTHON_TEST_NAME),$(MODULES)) \ +- $(if $(gb_CppunitTest__interactive),, \ +- > $@.log 2>&1 \ +- || ($(if $(value gb_CppunitTest_postprocess), \ +- RET=$$?; \ +- $(call gb_CppunitTest_postprocess,$(gb_PythonTest_EXECUTABLE_GDB),$@.core,$$RET) >> $@.log 2>&1;) \ +- cat $@.log; $(gb_PythonTest_UNITTESTFAILED) Python $*)))) ++ 2>&1)) + $(call gb_Trace_EndRange,$*,PYT) + endif + diff --git a/debian/patches/dont-touch-urd.diff b/debian/patches/dont-touch-urd.diff new file mode 100644 index 00000000000..f19ef5dc217 --- /dev/null +++ b/debian/patches/dont-touch-urd.diff @@ -0,0 +1,80 @@ +18:43 <@_rene_> hmm. /me wonders why after a rm config.status autogen.lastrun + and a re-configure (and make clean for odk/scp2/scripting) LO + master tries to rebuild offapi/udkapi again? +18:44 <@_rene_> this a) takes with cpp instead of ucpp and b) causes all kind + of stuff "down" to be rebuilt.... :( +18:44 <@_rene_> which is extremely bad. +18:44 <@_rene_> if it isn't solvable easily: what to touch to prevent it from + doing that? :-) +18:45 < loirkerbot> LibreOffice (core) mstahl * desktop/source/app/main.c: + desktop: tweak xmlCleanupParser hack: disable on return + from main +18:46 < mst__> _rene_, did you switch between --with-system-ucpp and without? + that should rebuild IDL file... +18:47 <@_rene_> nah, first run is just --disable-help, --disable-scripting etc +18:47 <@_rene_> and the second run does that +18:47 <@_rene_> (first pass to "just" build what is needed for arch-specific + stuff) +18:48 <@_rene_> (and I am not using ucpp at all, but cpp ;)) +18:51 < mst__> _rene_, hmm don't know why that would happen then... you could + try running second make with -d and redirect to a file, but + beware that file will be huge... then grep for "Must + remake.*urd" or something should give you the problem area +18:59 -!- reisi007 [~chatzilla@cpe90-146-226-33.liwest.at] has quit [Quit: + ChatZilla 0.9.89 [Firefox 14.0.1/20120713134347]] +19:00 -!- crossmanith_ [~cr@p3E9EAEF6.dip.t-dialin.net] has joined + #libreoffice-dev +19:00 -!- erAck_away is now known as erAck +19:05 -!- cbosdonnat [~cbosdo@ALyon-651-1-309-127.w90-14.abo.wanadoo.fr] has + quit [Quit: Leaving] +19:07 <@_rene_> mst__: ok, starting a new build, let's see +[...] +10:36 <@_rene_> mst__: nothing interesting there instead of the loads of + touch'es... +10:36 <@_rene_> mst__: butI just removed the touch from the UnoApiTarget and + let's see now :) +10:36 -!- erAck [~erathke@f054050047.adsl.alicedsl.de] has joined + #libreoffice-dev +10:36 -!- mode/#libreoffice-dev [+o erAck] by ChanServ +10:36 <@_rene_> $(call gb_UnoApiPartTarget_get_target,%.urd) : +10:36 <@_rene_> - touch $@ +10:36 <@_rene_> + +[...] +10:38 < mst__> _rene_, there must be something interesting there: preceding the + "Must remake.*urd" line there must be some line that says target + "foo" is "newer" than the .urd and therefor it will be rebuilt +[...] +10:40 <@_rene_> mst__: I didn't see anything there, no ".*urd*muss neu" +10:41 < mst__> _rene_, there must be a message like that immediately preceding + running the touch command +10:41 -!- pepp [~pierre-er@vaf26-6-78-248-2-61.fbx.proxad.net] has joined + #libreoffice-dev +10:42 <@vmiklos> mst__: makes sense. +10:42 -!- matus [~ubuntu@adsl-dyn17.78-98-107.t-com.sk] has joined + #libreoffice-dev +10:42 <@_rene_> as said, there was done. I don't think I oversaw it +10:43 <@_rene_> but can try again later, for now I will just keep removing the + touch. according to the comment this shoudln't do harm +10:43 < mst__> _rene_, removing it will break incremental builds iirc +10:44 <@_rene_> but only if you change idl stuff inbetween +10:44 <@_rene_> which won't happen that often in package builds ;) +10:44 < mst__> _rene_, exactly +10:44 -!- Fridrich [~fridrich@71-99.199-178.cust.bluewin.ch] has joined + #libreoffice-dev +10:44 -!- mode/#libreoffice-dev [+o Fridrich] by ChanServ +10:45 <@_rene_> (when I am out of "use git", only when there's a new + (pre-)release" + +diff --git a/solenv/gbuild/UnoApiTarget.mk b/solenv/gbuild/UnoApiTarget.mk +index 98734ab..b281a84 100644 +--- a/solenv/gbuild/UnoApiTarget.mk ++++ b/solenv/gbuild/UnoApiTarget.mk +@@ -46,7 +46,7 @@ $(dir $(call gb_UnoApiPartTarget_get_target,))%/.dir : + $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) + + $(call gb_UnoApiPartTarget_get_target,%.urd) : +- touch $@ ++ + + # TODO: + # - get idlc switch "-P" (generate .urd into package dir) diff --git a/debian/patches/fix-flaky-bridgetest.diff b/debian/patches/fix-flaky-bridgetest.diff new file mode 100644 index 00000000000..2a16db3a249 --- /dev/null +++ b/debian/patches/fix-flaky-bridgetest.diff @@ -0,0 +1,46 @@ +Description: Add safer float comparisons to bridgetest equals() +Author: Marcus Tomlinson +Bug-Ubuntu: https://launchpad.net/bugs/1832360 + +--- a/testtools/source/bridgetest/bridgetest.cxx ++++ b/testtools/source/bridgetest/bridgetest.cxx +@@ -53,6 +53,7 @@ + #include "currentcontextchecker.hxx" + #include "multi.hxx" + #include ++#include + + using namespace osl; + using namespace cppu; +@@ -124,6 +125,9 @@ public: + + static bool equals( const TestElement & rData1, const TestElement & rData2 ) + { ++ const float epsilon_f = 0.00001f; ++ const double epsilon_d = 0.000000000001; ++ + check( rData1.Bool == rData2.Bool, "### bool does not match!" ); + check( rData1.Char == rData2.Char, "### char does not match!" ); + check( rData1.Byte == rData2.Byte, "### byte does not match!" ); +@@ -133,8 +137,8 @@ static bool equals( const TestElement & rData1, const TestElement & rData2 ) + check( rData1.ULong == rData2.ULong, "### unsigned long does not match!" ); + check( rData1.Hyper == rData2.Hyper, "### hyper does not match!" ); + check( rData1.UHyper == rData2.UHyper, "### unsigned hyper does not match!" ); +- check( rData1.Float == rData2.Float, "### float does not match!" ); +- check( rData1.Double == rData2.Double, "### double does not match!" ); ++ check( fabs( rData1.Float - rData2.Float ) < epsilon_f, "### float does not match!" ); ++ check( fabs( rData1.Double - rData2.Double ) < epsilon_d, "### double does not match!" ); + check( rData1.Enum == rData2.Enum, "### enum does not match!" ); + check( rData1.String == rData2.String, "### string does not match!" ); + check( rData1.Interface == rData2.Interface, "### interface does not match!" ); +@@ -149,8 +153,8 @@ static bool equals( const TestElement & rData1, const TestElement & rData2 ) + rData1.ULong == rData2.ULong && + rData1.Hyper == rData2.Hyper && + rData1.UHyper == rData2.UHyper && +- rData1.Float == rData2.Float && +- rData1.Double == rData2.Double && ++ fabs( rData1.Float - rData2.Float ) < epsilon_f && ++ fabs( rData1.Double - rData2.Double ) < epsilon_d && + rData1.Enum == rData2.Enum && + rData1.String == rData2.String && + rData1.Interface == rData2.Interface && diff --git a/debian/patches/fix-internal-hsqldb-build.diff b/debian/patches/fix-internal-hsqldb-build.diff new file mode 100644 index 00000000000..477528515ac --- /dev/null +++ b/debian/patches/fix-internal-hsqldb-build.diff @@ -0,0 +1,45 @@ +diff -urN hsqldb.old/patches/use-system-servlet-api.jar.diff hsqldb/patches/use-system-servlet-api.jar.diff +--- a/external/hsqldb/patches/use-system-servlet-api.jar.diff 1970-01-01 01:00:00.000000000 +0100 ++++ b/external/hsqldb/patches/use-system-servlet-api.jar.diff 2013-03-19 15:09:42.137801521 +0100 +@@ -0,0 +1,29 @@ ++--- misc/hsqldb/build/build.xml +++++ misc/build/hsqldb/build/build.xml ++@@ -356,7 +356,7 @@ ++ optimize="${build.optimize}" ++ > ++ ++- +++ ++ ++ ++ ++@@ -818,7 +818,7 @@ ++ ${src}/org/hsqldb/util/RCData.java, ++ ${src}/org/hsqldb/util/SqlTool.java" ++ destdir="${basedir}/doc/src" ++- classpath="${basedir}/lib/servlet.jar;${basedir}/lib/junit.jar" +++ classpath="/usr/share/java/servlet-api-3.1.jar;${basedir}/lib/junit.jar" ++ author="true" ++ version="false" ++ use="true" ++@@ -839,7 +839,7 @@ ++ + +--- a/sc/qa/uitest/statistics/anova.py ++++ b/sc/qa/uitest/statistics/anova.py +@@ -98,7 +98,7 @@ class anova(UITestCase): + self.assertEqual(get_cell_by_position(document, 0, 6, 5).getValue(), 10) + self.assertEqual(get_cell_by_position(document, 0, 6, 6).getValue(), 10) + self.assertEqual(get_cell_by_position(document, 0, 6, 8).getString(), "SS") +- self.assertEqual(round(get_cell_by_position(document, 0, 6, 9).getValue(),11), 1876.56832844573) ++ self.assertEqual(round(get_cell_by_position(document, 0, 6, 9).getValue(),10), 1876.5683284457) + self.assertEqual(round(get_cell_by_position(document, 0, 6, 10).getValue(),10), 6025.1090909091) + #bug 80583 + self.assertEqual(round(get_cell_by_position(document, 0, 6, 11).getValue(),11), 7901.67741935484) +@@ -128,7 +128,7 @@ class anova(UITestCase): + self.assertEqual(round(get_cell_by_position(document, 0, 9, 9).getValue(),13), 4.3604117704492) + + self.assertEqual(get_cell_by_position(document, 0, 10, 8).getString(), "P-value") +- self.assertEqual(round(get_cell_by_position(document, 0, 10, 9).getValue(),14), 0.02246149518799) ++ self.assertEqual(round(get_cell_by_position(document, 0, 10, 9).getValue(),12), 0.022461495188) + + self.assertEqual(get_cell_by_position(document, 0, 11, 8).getString(), "F critical") + self.assertEqual(round(get_cell_by_position(document, 0, 11, 9).getValue(),13), 3.3403855582378) +--- a/sc/qa/uitest/statistics/descriptiveStatistics.py ++++ b/sc/qa/uitest/statistics/descriptiveStatistics.py +@@ -109,7 +109,7 @@ class descriptiveStatistics(UITestCase): + self.assertEqual(round(get_cell_by_position(document, 0, 6, 7).getValue(),11) , 139.49090909091) + self.assertEqual(round(get_cell_by_position(document, 0, 6, 8).getValue(),12) , 11.810626955878) + self.assertEqual(round(get_cell_by_position(document, 0, 6, 9).getValue(),13) , -1.4621677980825) +- self.assertEqual(round(get_cell_by_position(document, 0, 6, 10).getValue(),14) , 0.01524095329036) ++ self.assertEqual(round(get_cell_by_position(document, 0, 6, 10).getValue(),11) , 0.01524095329) + self.assertEqual(get_cell_by_position(document, 0, 6, 11).getValue() , 31) + self.assertEqual(get_cell_by_position(document, 0, 6, 12).getValue() , 26) + self.assertEqual(get_cell_by_position(document, 0, 6, 13).getValue() , 57) diff --git a/debian/patches/help-msg-add-package-info.diff b/debian/patches/help-msg-add-package-info.diff new file mode 100644 index 00000000000..dbfb32ae653 --- /dev/null +++ b/debian/patches/help-msg-add-package-info.diff @@ -0,0 +1,13 @@ +diff --git a/include/sfx2/strings.hrc b/include/sfx2/strings.hrc +index 1b0ea6ccb2ff..630f4330552a 100644 +--- a/include/sfx2/strings.hrc ++++ b/include/sfx2/strings.hrc +@@ -132,7 +132,7 @@ + #define STR_GID_CONTROLS NC_("STR_GID_CONTROLS", "Controls") + #define STR_QUITAPP NC_("STR_QUITAPP", "E~xit %PRODUCTNAME") + #define RID_STR_HELP NC_("RID_STR_HELP", "Help") +-#define RID_STR_HLPFILENOTEXIST NC_("RID_STR_HLPFILENOTEXIST", "The help file for this topic is not installed.") ++#define RID_STR_HLPFILENOTEXIST NC_("RID_STR_HLPFILENOTEXIST", "The help file for this topic is not installed. Please install the libreoffice-help-en-us package or the locale specific help package libreoffice-help-.") + #define STR_QUICKSTART_EXIT NC_("STR_QUICKSTART_EXIT", "Exit Quickstarter") + #define STR_QUICKSTART_TIP NC_("STR_QUICKSTART_TIP", "%PRODUCTNAME %PRODUCTVERSION Quickstarter") + #define STR_QUICKSTART_FILEOPEN NC_("STR_QUICKSTART_FILEOPEN", "Open Document...") diff --git a/debian/patches/hide-math-desktop-file.patch b/debian/patches/hide-math-desktop-file.patch new file mode 100644 index 00000000000..3e7fd4bbadc --- /dev/null +++ b/debian/patches/hide-math-desktop-file.patch @@ -0,0 +1,15 @@ +Description: Hide startcenter and math from the shell +Author: Olivier Tilloy +Bug-Ubuntu: https://launchpad.net/bugs/1696250 +Forwarded: not-needed + +--- a/sysui/desktop/menus/math.desktop ++++ b/sysui/desktop/menus/math.desktop +@@ -33,6 +33,7 @@ Keywords=Equation;OpenDocument Formula;F + InitialPreference=5 + StartupWMClass=libreoffice-math + X-KDE-Protocols=file,http,ftp,webdav,webdavs ++NotShowIn=GNOME; + + Actions=NewDocument; + [Desktop Action NewDocument] diff --git a/debian/patches/hppa-is-32bit.diff b/debian/patches/hppa-is-32bit.diff new file mode 100644 index 00000000000..b3ceb179fd3 --- /dev/null +++ b/debian/patches/hppa-is-32bit.diff @@ -0,0 +1,13 @@ +diff --git a/configure.ac b/configure.ac +index 42dc3b4..f5a51c9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6671,7 +6671,7 @@ if test "$ENABLE_JAVA" != ""; then + JAVAINTERPRETER=`win_short_path_for_make "$JAVAINTERPRETER"` + elif test "$cross_compiling" != "yes"; then + case $CPUNAME in +- AARCH64|AXP|X86_64|HPPA|IA64|POWERPC64|S390X|SPARC64|GODSON64) ++ AARCH64|AXP|X86_64|IA64|POWERPC64|S390X|SPARC64|GODSON64) + if test -f "$JAVAINTERPRETER" -a "`$JAVAINTERPRETER -version 2>&1 | $GREP -i 64-bit`" = "" >/dev/null; then + AC_MSG_WARN([You are building 64-bit binaries but the JDK $JAVAINTERPRETER is 32-bit]) + AC_MSG_ERROR([You should pass the --with-jdk-home option pointing to a 64-bit JDK]) diff --git a/debian/patches/install-fixes.diff b/debian/patches/install-fixes.diff new file mode 100644 index 00000000000..891bb321c78 --- /dev/null +++ b/debian/patches/install-fixes.diff @@ -0,0 +1,166 @@ +diff --git a/bin/distro-install-file-lists b/bin/distro-install-file-lists +index eaabf9c..c1b1ec6 100755 +--- libreoffice-3.5.0/bin/distro-install-file-lists ++++ libreoffice-3.5.0/bin/distro-install-file-lists +@@ -8,6 +8,8 @@ + exit 1 + fi + ++export OOO_VENDOR=Debian ++ + BUILDDIR=`pwd` + FILELISTSDIR="$BUILDDIR/file-lists" + +@@ -351,152 +351,6 @@ if test "z$OOO_VENDOR" != "zDebian" ; then + remove_duplicity_from_flists common_list.txt lang_bg_list.txt $INSTALLDIR/presets/config/styles.sod + # the British fixes can be removed after the issue #54113 is fixed + remove_duplicity_from_flists common_list.txt lang_en-GB_list.txt $INSTALLDIR/presets/config/standard.sog +- +-else +- +- echo "Creating package directories..." +- +- test -d pkg && rm -r pkg || : +- +- # Create package tree (needed by Debian's dpkg) +- # create_package_directory +- create_package_directory() +- { +- listfile=$1 +- directory="$2" +- perl -nl \ +- -e " if(/^%dir (.*)/) +- {system('mkdir', '-p', '-m', '755', \"$directory\".\$1);} +- else +- {rename('./'.\$_, \"$directory\".\$_);} +- " \ +- $listfile +- } +- +- create_package_directory gid_Module_Root_Ure_Hidden pkg/ure +- +- create_package_directory gid_Module_Root pkg/libreoffice-common +- create_package_directory gid_Module_Root_Brand pkg/libreoffice-common +- create_package_directory gid_Module_Root_Files_Images pkg/libreoffice-common +- create_package_directory gid_Module_Oo_Linguistic pkg/libreoffice-common +- create_package_directory gid_Module_Optional_Xsltfiltersamples pkg/libreoffice-common +- create_package_directory gid_Module_Optional_Grfflt pkg/libreoffice-draw +- create_package_directory gid_Module_Prg_Calc_Bin pkg/libreoffice-calc +- create_package_directory gid_Module_Prg_Math_Bin pkg/libreoffice-math +- create_package_directory gid_Module_Prg_Draw_Bin pkg/libreoffice-draw +- create_package_directory gid_Module_Prg_Wrt_Bin pkg/libreoffice-writer +- create_package_directory gid_Module_Prg_Impress_Bin pkg/libreoffice-impress +- create_package_directory gid_Module_Prg_Base_Bin pkg/libreoffice-base +- create_package_directory gid_Module_Brand_Prg_Calc pkg/libreoffice-calc +- create_package_directory gid_Module_Brand_Prg_Math pkg/libreoffice-math +- create_package_directory gid_Module_Brand_Prg_Draw pkg/libreoffice-draw +- create_package_directory gid_Module_Brand_Prg_Wrt pkg/libreoffice-writer +- create_package_directory gid_Module_Brand_Prg_Impress pkg/libreoffice-impress +- create_package_directory gid_Module_Brand_Prg_Base pkg/libreoffice-base +- create_package_directory gid_Module_Pyuno pkg/python-uno +- create_package_directory gid_Module_Optional_Gnome pkg/libreoffice-gnome +- +- create_package_directory gid_Module_Root_Files_2 pkg/libreoffice-common +- create_package_directory gid_Module_Root_Files_3 pkg/libreoffice-common +- create_package_directory gid_Module_Root_Files_4 pkg/libreoffice-common +- create_package_directory gid_Module_Root_Files_5 pkg/libreoffice-common +- create_package_directory gid_Module_Root_Files_6 pkg/libreoffice-common +- create_package_directory gid_Module_Root_Files_7 pkg/libreoffice-common +- if [ -e gid_Module_Optional_Pymailmerge ]; then +- create_package_directory gid_Module_Optional_Pymailmerge pkg/libreoffice-emailmerge +- else # post m26 +- mkdir -p pkg/libreoffice-emailmerge/$INSTALLDIR/program +- mv pkg/libreoffice-common/$INSTALLDIR/program/mailmerge.py \ +- pkg/libreoffice-emailmerge/$INSTALLDIR/program/mailmerge.py +- fi +- create_package_directory gid_Module_Optional_OGLTrans pkg/libreoffice-ogltrans +- +- create_package_directory gid_Module_Root_SDK pkg/libreoffice-dev +- +- for l in `echo $WITH_LANG_LIST`; do +- for p in Impress Draw Math Calc Base Writer; do +- create_package_directory gid_Module_Langpack_${p}_`echo $l | sed -e s/-/_/g` pkg/libreoffice-l10n-$l +- done +- create_package_directory gid_Module_Langpack_Basis_`echo $l | sed -e s/-/_/g` pkg/libreoffice-l10n-$l +- create_package_directory gid_Module_Langpack_Brand_`echo $l | sed -e s/-/_/g` pkg/libreoffice-l10n-$l +- create_package_directory gid_Module_Langpack_Resource_`echo $l | sed -e s/-/_/g` pkg/libreoffice-l10n-$l +- create_package_directory gid_Module_Helppack_Help_`echo $l | sed -e s/-/_/g` pkg/libreoffice-help-$l +- +- # some help files are in _Langpack_{Writer,Impress,...}_ +- # move them from -l10n to -help +- if [ "$l" = "en-US" ]; then d=en; else d=$l; fi +- mv pkg/libreoffice-l10n-$l/$INSTALLDIR/help/$d/* \ +- pkg/libreoffice-help-$l/$INSTALLDIR/help/$d && \ +- rmdir pkg/libreoffice-l10n-$l/$INSTALLDIR/help/$d +- done +- +- # move_wrappers [...] +- move_wrappers() +- { +- directory=$1 +- shift +- mkdir -m755 -p "$directory"/usr/bin +- while test -n "$1"; do +- mv usr/*bin/"$1$BINSUFFIX" "$directory"/usr/bin +- shift +- done +- } +- move_wrappers pkg/libreoffice-common soffice unopkg +- if test "$COMPAT_OOWRAPPERS" = "YES" ; then +- move_wrappers pkg/libreoffice-common ooffice oofromtemplate +- move_wrappers pkg/libreoffice-base oobase +- move_wrappers pkg/libreoffice-writer oowriter ooweb +- move_wrappers pkg/libreoffice-calc oocalc +- move_wrappers pkg/libreoffice-impress ooimpress +- move_wrappers pkg/libreoffice-math oomath +- move_wrappers pkg/libreoffice-draw oodraw +- fi +- move_wrappers pkg/libreoffice-common libreoffice lofromtemplate +- move_wrappers pkg/libreoffice-base lobase +- move_wrappers pkg/libreoffice-writer lowriter loweb +- move_wrappers pkg/libreoffice-calc localc +- move_wrappers pkg/libreoffice-impress loimpress +- move_wrappers pkg/libreoffice-math lomath +- move_wrappers pkg/libreoffice-draw lodraw +- +- # Move all libraries, binaries, *.rdb from -common to -core +- for d in $INSTALLDIR/program $INSTALLDIR/program; do \ +- if [ ! -d $DESTDIR/pkg/libreoffice-core/$d ]; then \ +- mkdir -p $DESTDIR/pkg/libreoffice-core/$d; \ +- fi && +- ( cd pkg/libreoffice-common/$d +- find -maxdepth 1 \ +- -regex '\./\(.*\.so.*\|.*\.bin\|pagein\|msfontextract\|.*\.rdb\|javaldx\|uri-encode\)' \ +- -exec mv {} $DESTDIR/pkg/libreoffice-core/$d \; +- ); \ +- done +- +- # install additional ooo-build scripts & misc stuff +- mkdir -p pkg/libreoffice-common/usr/share/man/man1 +- if test "$COMPAT_OOWRAPPERS" = "YES" ; then +- mv usr/share/man/man1/openoffice$BINSUFFIX.1 \ +- pkg/libreoffice-common/usr/share/man/man1 +- fi +- mv usr/share/man/man1/libreoffice$BINSUFFIX.1 \ +- pkg/libreoffice-common/usr/share/man/man1 +- mkdir -p pkg/libreoffice-common/etc/bash_completion.d +- if test "$COMPAT_OOWRAPPERS" = "YES" ; then +- mv etc/bash_completion.d/ooffice$BINSUFFIX.sh \ +- pkg/libreoffice-common/etc/bash_completion.d +- fi +- mv etc/bash_completion.d/libreoffice$BINSUFFIX.sh \ +- pkg/libreoffice-common/etc/bash_completion.d +- mv .$INSTALLDIR/program/java-set-classpath \ +- pkg/libreoffice-common/$INSTALLDIR/program +- if echo $WITH_LANG_LIST | grep -q en-US; then +- for i in forms/resume.ott officorr/project-proposal.ott; do \ +- mkdir -p pkg/libreoffice-common/$INSTALLDIR/share/template/en-US/`dirname $i`; \ +- mv .$INSTALLDIR/share/template/en-US/$i \ +- pkg/libreoffice-common/$INSTALLDIR/share/template/en-US/$i; \ +- done; \ +- fi +- # Warn for any remaining files +- find . -path './pkg' -prune -o -not -name 'gid_Module_*' -not -type d -exec echo "File not packaged: {}" \; + fi + + # mark the config files diff --git a/debian/patches/javadoc-optional.diff b/debian/patches/javadoc-optional.diff new file mode 100644 index 00000000000..704ae20ec56 --- /dev/null +++ b/debian/patches/javadoc-optional.diff @@ -0,0 +1,153 @@ +Gemeinsame Unterverzeichnisse: odk-old/config und odk/config. +Gemeinsame Unterverzeichnisse: odk-old/docs und odk/docs. +Gemeinsame Unterverzeichnisse: odk-old/examples und odk/examples. +diff --git a/odk/Module_odk.mk b/odk/Module_odk.mk +index 32bdfc1..a174932 100644 +--- a/odk/Module_odk.mk ++++ b/odk/Module_odk.mk +@@ -43,11 +43,13 @@ ifneq ($(ENABLE_JAVA),) + $(eval $(call gb_Module_add_targets,odk,\ + $(if $(and $(BUILD_UNOWINREG),$(filter GCC,$(COM))),CustomTarget_unowinreg)\ + CustomTarget_classes \ +- CustomTarget_javadoc \ +- GeneratedPackage_odk_javadoc \ + GeneratedPackage_uno_loader_classes \ + $(if $(filter WNT,$(OS)),Library_unowinreg) \ + Package_unowinreg \ ++ $(if $(JAVADOC),\ ++ CustomTarget_javadoc \ ++ GeneratedPackage_odk_javadoc \ ++ ) \ + )) + endif + +Gemeinsame Unterverzeichnisse: odk-old/pack und odk/pack. +Gemeinsame Unterverzeichnisse: odk-old/qa und odk/qa. +Gemeinsame Unterverzeichnisse: odk-old/settings und odk/settings. +Gemeinsame Unterverzeichnisse: odk-old/source und odk/source. +Gemeinsame Unterverzeichnisse: odk-old/util und odk/util. +--- a/configure.ac-old 2013-05-27 18:32:42.187305241 +0200 ++++ b/configure.ac 2013-05-27 18:44:29.131286710 +0200 +@@ -2057,6 +2057,18 @@ AC_ARG_WITH(doxygen, + documentation. Not relevant in the --disable-odk case.]), + ,with_doxygen=yes) + ++AC_ARG_WITH( ++ [javadoc], ++ AS_HELP_STRING( ++ [--with-javadoc], ++ [Specifies the javadoc executable to use when generating ODK Java ++ documentation. --without-javadoc disables generation of ODK Java ++ documentation. Not relevant in the --disable-odk case.]) ++ [ ++ Usage: --with-javadoc= ++ ],, ++ [with_javadoc=yes]) ++ + AC_ARG_WITH(visual-studio, + AS_HELP_STRING([--with-visual-studio=<2019>], + [Specify which Visual Studio version to use in case several are +@@ -6290,34 +6302,44 @@ + dnl =================================================================== + dnl Checks for javadoc + dnl =================================================================== +-if test "$ENABLE_JAVA" != ""; then ++if test "$ENABLE_JAVA" != "" -a "$enable_odk" != no; then + if test -z "$with_jdk_home"; then + AC_PATH_PROG(JAVADOC, javadoc) + else +- _javadoc_path="$with_jdk_home/bin/javadoc" +- dnl Check if there is a javadoc at all. +- if test -x "$_javadoc_path"; then +- JAVADOC=$_javadoc_path +- else +- AC_PATH_PROG(JAVADOC, javadoc) +- fi +- fi +- if test -z "$JAVADOC"; then +- AC_MSG_ERROR([$_javadoc_path not found set with_jdk_home]) +- fi +- if test "$build_os" = "cygwin"; then +- if test x`echo "$JAVADOC" | $GREP -i '\.exe$'` = x; then +- JAVADOC="${JAVADOC}.exe" +- fi +- JAVADOC=`win_short_path_for_make "$JAVADOC"` +- fi ++ if test "$with_javadoc" = "yes"; then ++ _javadoc_path="$with_jdk_home/bin/javadoc" ++ dnl Check if there is a javadoc at all. ++ if test -x "$_javadoc_path"; then ++ JAVADOC=$_javadoc_path ++ else ++ AC_PATH_PROG(JAVADOC, javadoc) ++ fi ++ if test -z "$JAVADOC"; then ++ AC_MSG_ERROR([$_javadoc_path not found set with_jdk_home]) ++ fi ++ if test "$build_os" = "cygwin"; then ++ if test x`echo "$JAVADOC" | $GREP -i '\.exe$'` = x; then ++ JAVADOC="${JAVADOC}.exe" ++ fi ++ JAVADOC=`win_short_path_for_make "$JAVADOC"` ++ fi + +- if test `$JAVADOC --version 2>&1 | $GREP -c "gjdoc"` -gt 0; then +- JAVADOCISGJDOC="yes" ++ if test `$JAVADOC --version 2>&1 | $GREP -c "gjdoc"` -gt 0; then ++ JAVADOCISGJDOC="yes" ++ fi ++ else ++ unset JAVADOC ++ fi + fi ++else ++ unset JAVADOC + fi + AC_SUBST(JAVADOCISGJDOC) + ++if test "$JAVADOCISGJDOC" = "yes"; then ++ unset JAVADOC ++fi ++ + if test "$ENABLE_JAVA" != ""; then + # check if JAVA_HOME was (maybe incorrectly?) set automatically to /usr + if test "$JAVA_HOME" = "/usr" -a "x$with_jdk_home" = "x"; then +diff --git a/odk/CustomTarget_check.mk b/odk/CustomTarget_check.mk +index a9b542d..707829a 100644 +--- a/odk/CustomTarget_check.mk ++++ b/odk/CustomTarget_check.mk +@@ -35,7 +35,7 @@ $(call gb_CustomTarget_get_workdir,odk/check)/checkbin : \ + $(if $(filter WNT,$(OS)),$(call gb_Package_get_target,odk_config_win)) \ + $(call gb_Package_get_target,odk_docs) \ + $(call gb_Package_get_target,odk_html) \ +- $(if $(ENABLE_JAVA),$(call gb_GeneratedPackage_get_target,odk_javadoc)) \ ++ $(if $(JAVADOC),$(call gb_GeneratedPackage_get_target,odk_javadoc)) \ + $(call gb_Package_get_target,odk_settings) \ + $(call gb_Package_get_target,odk_settings_generated) \ + $(if $(ENABLE_JAVA),$(call gb_Package_get_target,odk_unowinreg)) +diff --git a/odk/util/check.pl b/odk/util/check.pl +index 899b42c..2c7a780 100644 +--- a/odk/util/check.pl ++++ b/odk/util/check.pl +@@ -188,7 +188,7 @@ if (-d "$SdkDir") { + # improvement required + my $solar_java = $ENV{"ENABLE_JAVA"}; + my $JDK = $ENV{"JDK"}; +- if (defined($solar_java) && $solar_java ne "" && (!defined($JDK) || $JDK ne "gcj")) { ++ if (defined($solar_java) && $solar_java ne "" && $ENV{"JAVADOC"} ne "") { + print "check java docu: "; + if (check_dir("docs/java/ref")) { + if (!check_file("docs/java/ref/index.html")) { +diff --git a/Repository.mk b/Repository.mk +index 5f2654b..471210f 100644 +--- a/Repository.mk ++++ b/Repository.mk +@@ -834,7 +841,7 @@ $(eval $(call gb_Helper_register_packages_for_install,sdk,\ + offapi_idl \ + udkapi_idl \ + $(if $(ENABLE_JAVA), \ +- odk_javadoc \ ++ $(if $(JAVADOC),odk_javadoc) \ + odk_uno_loader_classes \ + odk_unowinreg \ + ) \ diff --git a/debian/patches/jdbc-driver-classpaths.diff b/debian/patches/jdbc-driver-classpaths.diff new file mode 100644 index 00000000000..8f4a1660e75 --- /dev/null +++ b/debian/patches/jdbc-driver-classpaths.diff @@ -0,0 +1,35 @@ +diff --git a/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu b/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu +index 9be30a2..59c87cb 100644 +--- a/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu ++++ b/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu +@@ -147,6 +147,30 @@ + + + ++ ++ ++ ++ ++ file:///usr/share/java/mariadb-java-client.jar ++ ++ ++ ++ ++ file:///usr/share/java/mysql.jar ++ ++ ++ ++ ++ file:///usr/share/java/posgresql.jar ++ ++ ++ ++ ++ file:///usr/share/java/jtds.jar ++ ++ ++ ++ + + + diff --git a/debian/patches/jurt-soffice-location.diff b/debian/patches/jurt-soffice-location.diff new file mode 100644 index 00000000000..aa334d8ea4d --- /dev/null +++ b/debian/patches/jurt-soffice-location.diff @@ -0,0 +1,20 @@ +commit b71107fb12e3c3125e0cb62c5a4f6636a80c6408 +Author: Bjoern Michaelsen +AuthorDate: Tue Jun 7 11:52:37 2011 +0200 +Commit: Bjoern Michaelsen +CommitDate: Tue Jun 7 11:52:37 2011 +0200 + + on debian-based systems, we know where our soffice binary is + +diff --git a/jurt/com/sun/star/lib/util/NativeLibraryLoader.java b/jurt/com/sun/star/lib/util/NativeLibraryLoader.jav +index da22980..36664ca 100644 +--- libreoffice-3.5.0/ridljar/com/sun/star/lib/util/NativeLibraryLoader.java ++++ libreoffice-3.5.0/ridljar/com/sun/star/lib/util/NativeLibraryLoader.java +@@ -111,6 +111,8 @@ public final class NativeLibraryLoader { + } + } + } ++ if (name.equals("soffice")) ++ return new File("/usr/lib/libreoffice/program/soffice"); + return null; + } diff --git a/debian/patches/make-package-modules-not-suck.diff b/debian/patches/make-package-modules-not-suck.diff new file mode 100644 index 00000000000..2f29277ec58 --- /dev/null +++ b/debian/patches/make-package-modules-not-suck.diff @@ -0,0 +1,200 @@ +diff --git a/scp2/InstallModule_draw.mk b/scp2/InstallModule_draw.mk +index a7c02be..d48edf2 100644 +--- a/scp2/InstallModule_draw.mk ++++ b/scp2/InstallModule_draw.mk +@@ -10,6 +10,7 @@ + $(eval $(call gb_InstallModule_InstallModule,scp2/draw)) + + $(eval $(call gb_InstallModule_use_auto_install_libs,scp2/draw,\ ++ draw \ + draw_brand \ + )) + +diff --git a/scp2/source/draw/module_draw.scp b/scp2/source/draw/module_draw.scp +index 8737579..0913c61 100644 +--- a/scp2/source/draw/module_draw.scp ++++ b/scp2/source/draw/module_draw.scp +@@ -18,6 +18,7 @@ + + #include "macros.inc" + ++#include "AutoInstall/draw" + #include "AutoInstall/draw_brand" + + Module gid_Module_Prg_Draw +@@ -34,7 +35,8 @@ Module gid_Module_Prg_Draw_Bin + Sortkey = "100"; + Default = YES; + Styles = (HIDDEN_ROOT); +- Files = (gid_File_Extra_Urldesktop_Draw,gid_File_Extra_Urlnew_Draw,gid_File_Extra_Urlstart_Draw,gid_File_Extra_Urltasks_Draw, ++ Files = (auto_draw_ALL, ++ gid_File_Extra_Urldesktop_Draw,gid_File_Extra_Urlnew_Draw,gid_File_Extra_Urlstart_Draw,gid_File_Extra_Urltasks_Draw, + gid_File_Share_Registry_Draw_Xcd, + gid_File_Tmp_Userinstall_Draw_Inf); + End +diff --git a/scp2/AutoInstall.mk b/scp2/AutoInstall.mk +index 7d2a347..a15ac52 100644 +--- a/scp2/AutoInstall.mk ++++ b/scp2/AutoInstall.mk +@@ -17,6 +17,7 @@ $(eval $(call gb_AutoInstall_add_module,base_brand,,LIBO_EXECUTABLE,,PACKAGE_FIL + $(eval $(call gb_AutoInstall_add_module,brand,,LIBO_EXECUTABLE,,PACKAGE_FILELIST)) + $(eval $(call gb_AutoInstall_add_module,calc,LIBO_LIB_FILE,,,PACKAGE_FILELIST)) + $(eval $(call gb_AutoInstall_add_module,calc_brand,,LIBO_EXECUTABLE,,PACKAGE_FILELIST)) ++$(eval $(call gb_AutoInstall_add_module,draw,LIBO_LIB_FILE)) + $(eval $(call gb_AutoInstall_add_module,draw_brand,,LIBO_EXECUTABLE,,PACKAGE_FILELIST)) + $(eval $(call gb_AutoInstall_add_module,extensions_ct2n,,,,PACKAGE_FILELIST)) + $(eval $(call gb_AutoInstall_add_module,extensions_bsh,,,LIBO_JAR_FILE)) +diff --git a/Repository.mk b/Repository.mk +index 36b35b7a4262..25f202cb0983 100644 +--- a/Repository.mk ++++ b/Repository.mk +@@ -245,13 +245,29 @@ $(eval $(call gb_Helper_register_executables_for_install,UREBIN,ure,\ + + $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,base, \ + abp \ ++ calc \ ++ dba \ ++ dbahsql \ ++ $(call gb_Helper_optional,DBCONNECTIVITY, \ ++ dbase \ ++ dbaxml) \ + dbp \ + dbu \ ++ $(call gb_Helper_optional,DBCONNECTIVITY,flat) \ ++ $(if $(ENABLE_JAVA),jdbc) \ ++ $(call gb_Helper_optional,DBCONNECTIVITY,mysql_jdbc) \ ++ $(call gb_Helper_optional,MARIADBC,$(call gb_Helper_optional,DBCONNECTIVITY,mysqlc)) \ ++ odbc \ ++)) ++ ++$(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,base, \ ++ $(call gb_Helper_optional,DBCONNECTIVITY,dbpool2) \ ++ $(if $(ENABLE_JAVA),hsqldb) \ ++ sdbc2 \ + )) + + $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,calc, \ + analysis \ +- $(call gb_Helper_optional,DBCONNECTIVITY,calc) \ + date \ + pricing \ + sc \ +@@ -263,6 +279,14 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,calc, \ + $(call gb_Helper_optional,SCRIPTING,vbaobj) \ + )) + ++$(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,draw, \ ++ animcore \ ++ sd \ ++ sdd \ ++ sdfilt \ ++ sdui \ ++)) ++ + $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,graphicfilter, \ + svgfilter \ + wpftdraw \ +@@ -271,10 +295,10 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,graphicfilter, \ + )) + + $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,impress, \ +- animcore \ + PresenterScreen \ + PresentationMinimizer \ + wpftimpress \ ++ slideshow \ + )) + + $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,onlineupdate, \ +@@ -349,11 +349,6 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \ + configmgr \ + ctl \ + cui \ +- dba \ +- dbahsql \ +- $(call gb_Helper_optional,DBCONNECTIVITY, \ +- dbase \ +- dbaxml) \ + dbtools \ + deploymentmisc \ + $(if $(filter-out MACOSX WNT,$(OS)),desktopbe1) \ +@@ -366,7 +386,6 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \ + evtatt \ + expwrap \ + $(call gb_Helper_optional,DBCONNECTIVITY, \ +- flat \ + file) \ + filterconfig \ + fps_office \ +@@ -387,7 +406,6 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \ + gie \ + hyphen \ + icg \ +- $(if $(ENABLE_JAVA),jdbc) \ + $(if $(ENABLE_LDAP),ldapbe2) \ + $(if $(filter WNT,$(OS)),WinUserInfoBe) \ + localebe1 \ +@@ -403,10 +421,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \ + msfilter \ + $(call gb_Helper_optional,SCRIPTING,msforms) \ + mtfrenderer \ +- $(call gb_Helper_optional,DBCONNECTIVITY,mysql_jdbc) \ +- $(call gb_Helper_optional,MARIADBC,$(call gb_Helper_optional,DBCONNECTIVITY,mysqlc)) \ + numbertext \ +- odbc \ + odfflatxml \ + offacc \ + oox \ +@@ -419,13 +434,8 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \ + sb \ + $(call gb_Helper_optional,DBCONNECTIVITY,sdbt) \ + scn \ +- sd \ +- sdd \ +- sdfilt \ +- sdui \ + sfx \ + simplecanvas \ +- slideshow \ + sot \ + $(if $(filter-out iOS,$(OS)),spell) \ + $(if $(DISABLE_GUI),,spl) \ +@@ -437,7 +447,6 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \ + svt \ + svx \ + svxcore \ +- sw \ + syssh \ + textconversiondlgs \ + textfd \ +@@ -522,6 +531,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,writer, \ + hwp \ + $(if $(ENABLE_LWP),lwpft) \ + msword \ ++ sw \ + swd \ + swui \ + t602filter \ +@@ -600,14 +610,12 @@ $(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,ooo, \ + cached1 \ + collator_data \ + comphelper \ +- $(call gb_Helper_optional,DBCONNECTIVITY,dbpool2) \ + $(call gb_Helper_optional,BREAKPAD,crashreport) \ + deployment \ + deploymentgui \ + dict_ja \ + dict_zh \ + embobj \ +- $(if $(ENABLE_JAVA),hsqldb) \ + i18nutil \ + index_data \ + $(if $(and $(ENABLE_GTK3), $(filter LINUX %BSD SOLARIS,$(OS))), libreofficekitgtk) \ +@@ -623,7 +631,6 @@ $(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,ooo, \ + emboleobj \ + package2 \ + $(call gb_Helper_optional,SCRIPTING,scriptframe) \ +- sdbc2 \ + sofficeapp \ + srtrs1 \ + $(if $(filter $(OS),WNT),sysdtrans) \ diff --git a/debian/patches/mediwiki-oor-replace.diff b/debian/patches/mediwiki-oor-replace.diff new file mode 100644 index 00000000000..ed04c917e35 --- /dev/null +++ b/debian/patches/mediwiki-oor-replace.diff @@ -0,0 +1,51 @@ +diff --git a/swext/mediawiki/src/registry/data/org/openoffice/Office/OptionsDialog.xcu b/swext/mediawiki/src/registry/data/org/openoffice/Office/OptionsDialog.xcu +index 2b35ced08f31..0c96070dd4f0 100644 +--- a/swext/mediawiki/src/registry/data/org/openoffice/Office/OptionsDialog.xcu ++++ b/swext/mediawiki/src/registry/data/org/openoffice/Office/OptionsDialog.xcu +@@ -18,9 +18,9 @@ + --> + + +- ++ + +- ++ + + com.sun.wiki-publisher + +diff --git a/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Filter.xcu b/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Filter.xcu +index 3309b503824c..261e470b253b 100644 +--- a/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Filter.xcu ++++ b/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Filter.xcu +@@ -19,7 +19,7 @@ + + + +- ++ + 0 + MediaWiki + com.sun.star.text.TextDocument +@@ -31,7 +31,7 @@ + + EXPORT ALIEN 3RDPARTYFILTER + +- ++ + 0 + MediaWiki + com.sun.star.text.WebDocument +diff --git a/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Types.xcu b/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Types.xcu +index 15e4f850041a..ce7cd0763b79 100644 +--- a/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Types.xcu ++++ b/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Types.xcu +@@ -19,7 +19,7 @@ + + + +- ++ + com.sun.star.comp.filters.XMLFilterDetect + + txt diff --git a/debian/patches/mention-java-common-package.diff b/debian/patches/mention-java-common-package.diff new file mode 100644 index 00000000000..24fbbc0a877 --- /dev/null +++ b/debian/patches/mention-java-common-package.diff @@ -0,0 +1,35 @@ +diff --git a/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx b/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx +index 718902caba6f..3c8499b5a42c 100644 +--- a/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx ++++ b/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx +@@ -141,6 +141,9 @@ static bool findAndSelect(JavaInfo ** ppInfo) + if (errcode == JFW_E_NO_JAVA_FOUND) + { + fprintf(stderr,"javaldx: Could not find a Java Runtime Environment!\n"); ++ fprintf(stderr,"Please ensure that a JVM and the package libreoffice-java-common\n"); ++ fprintf(stderr,"is installed.\n"); ++ fprintf(stderr,"If it is already installed then try removing ~/.config/libreoffice/4/user/config/javasettings_Linux_*.xml\n"); + return false; + } + else if (errcode != JFW_E_NONE && errcode != JFW_E_DIRECT_MODE) +diff --git a/include/svtools/strings.hrc b/include/svtools/strings.hrc +index f9dc617f4313..874b0400cbc5 100644 +--- a/include/svtools/strings.hrc ++++ b/include/svtools/strings.hrc +@@ -281,13 +281,13 @@ + + #define STR_SVT_DEFAULT_SERVICE_LABEL NC_("STR_SVT_DEFAULT_SERVICE_LABEL", "$user$'s $service$") + +-#define STR_WARNING_JAVANOTFOUND NC_("STR_WARNING_JAVANOTFOUND", "%PRODUCTNAME requires a Java runtime environment (JRE) to perform this task. Please install a JRE and restart %PRODUCTNAME.") ++#define STR_WARNING_JAVANOTFOUND NC_("STR_WARNING_JAVANOTFOUND", "%PRODUCTNAME requires a Java runtime environment (JRE) to perform this task. Please install a JRE (and libreoffice-java-common) and restart %PRODUCTNAME.") + #define STR_WARNING_JAVANOTFOUND_WIN NC_("STR_WARNING_JAVANOTFOUND_WIN", "%PRODUCTNAME requires a %BITNESS-bit Java runtime environment (JRE) to perform this task. Please install a JRE and restart %PRODUCTNAME.") + #define STR_WARNING_JAVANOTFOUND_MAC NC_("STR_WARNING_JAVANOTFOUND_MAC", "%PRODUCTNAME requires Oracle's Java Development Kit (JDK) on macOS 10.10 or greater to perform this task. Please install them and restart %PRODUCTNAME.") + #define STR_WARNING_INVALIDJAVASETTINGS_MAC NC_("STR_WARNING_INVALIDJAVASETTINGS_MAC", "The %PRODUCTNAME configuration has been changed. Under %PRODUCTNAME - Preferences - %PRODUCTNAME - Advanced, select the Java runtime environment you want to have used by %PRODUCTNAME.") +-#define STR_WARNING_INVALIDJAVASETTINGS NC_("STR_WARNING_INVALIDJAVASETTINGS", "The %PRODUCTNAME configuration has been changed. Under Tools - Options - %PRODUCTNAME - Advanced, select the Java runtime environment you want to have used by %PRODUCTNAME.") ++#define STR_WARNING_INVALIDJAVASETTINGS NC_("STR_WARNING_INVALIDJAVASETTINGS", "The %PRODUCTNAME configuration has been changed. Under Tools - Options - %PRODUCTNAME - Advanced, select the Java runtime environment you want to have used by %PRODUCTNAME. Maybe you also need to install libreoffice-java-common.") + #define STR_ERROR_JVMCREATIONFAILED_MAC NC_("STR_ERROR_JVMCREATIONFAILED_MAC", "%PRODUCTNAME requires a Java runtime environment (JRE) to perform this task. The selected JRE is defective. Please select another version or install a new JRE and select it under %PRODUCTNAME - Preferences - %PRODUCTNAME - Advanced.") +-#define STR_ERROR_JVMCREATIONFAILED NC_("STR_ERROR_JVMCREATIONFAILED", "%PRODUCTNAME requires a Java runtime environment (JRE) to perform this task. The selected JRE is defective. Please select another version or install a new JRE and select it under Tools - Options - %PRODUCTNAME - Advanced.") ++#define STR_ERROR_JVMCREATIONFAILED NC_("STR_ERROR_JVMCREATIONFAILED", "%PRODUCTNAME requires a Java runtime environment (JRE) to perform this task. The selected JRE is defective. Please select another version or install a new JRE and select it under Tools - Options - %PRODUCTNAME - Advanced or install libreoffice-java-common if not already installed.") + #define STR_WARNING_JAVANOTFOUND_TITLE NC_("STR_WARNING_JAVANOTFOUND_TITLE", "JRE Required") + #define STR_WARNING_INVALIDJAVASETTINGS_TITLE NC_("STR_WARNING_INVALIDJAVASETTINGS_TITLE", "Select JRE") + #define STR_ERROR_JVMCREATIONFAILED_TITLE NC_("STR_ERROR_JVMCREATIONFAILED_TITLE", "JRE is Defective") diff --git a/debian/patches/no-check-if-root.diff b/debian/patches/no-check-if-root.diff new file mode 100644 index 00000000000..95ebbb329a4 --- /dev/null +++ b/debian/patches/no-check-if-root.diff @@ -0,0 +1,26 @@ +--- a/Makefile.in 2017-07-28 06:09:37.072183489 +0000 ++++ b/Makefile.in 2017-10-18 12:43:59.215567467 +0000 +@@ -57,14 +57,6 @@ else # MAKE_RESTARTS + + .DEFAULT_GOAL := build + +-check-if-root: +- @if test ! `uname` = 'Haiku' -a `id -u` = 0 && ! grep -q 'lxc\|docker' /proc/self/cgroup && ! grep -q 'libpod_parent' /proc/self/cgroup; then \ +- echo; \ +- echo 'Building LibreOffice as root is a very bad idea, use a regular user.'; \ +- echo; \ +- exit 1; \ +- fi +- + gb_Side ?= host + + include $(BUILDDIR)/config_$(gb_Side).mk +@@ -252,7 +244,7 @@ endif + # + # Bootstrap + # +-bootstrap: check-if-root compilerplugins ++bootstrap: compilerplugins + + # + # Build diff --git a/debian/patches/no-opencl-per-default.diff b/debian/patches/no-opencl-per-default.diff new file mode 100644 index 00000000000..d17e9c0598d --- /dev/null +++ b/debian/patches/no-opencl-per-default.diff @@ -0,0 +1,26 @@ +From b54cfe9d3d22fdd40f7015bd343df8620c983779 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Mon, 27 Mar 2017 11:47:01 +0100 +Subject: [PATCH] Resolves: rhbz#1432468 disable opencl by default + +Change-Id: Ie037fcabdd219f195425979dd721501fb5527573 +--- + officecfg/registry/schema/org/openoffice/Office/Common.xcs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs +index 946bd32..284d694 100644 +--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs ++++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs +@@ -5670,7 +5670,7 @@ + Determines whether OpenCL can be used, when available, to speed up + some operations. + +- true ++ false + + + +-- +2.9.3 + diff --git a/debian/patches/no-openssl.diff b/debian/patches/no-openssl.diff new file mode 100644 index 00000000000..9faabd8a87c --- /dev/null +++ b/debian/patches/no-openssl.diff @@ -0,0 +1,345 @@ +don't add -lssl etc if not needed (because we use system-postgresql) + +diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk +index 0fc7d25..952b140 100644 +--- a/RepositoryExternal.mk ++++ b/RepositoryExternal.mk +@@ -2911,9 +2917,10 @@ $(call gb_LinkTarget_add_libs,$(1),\ + $(call gb_UnpackedTarball_get_dir,postgresql)/src/interfaces/libpq/libpq$(gb_StaticLibrary_PLAINEXT) \ + ) + +-ifeq ($(OS),WNT) + $(call gb_LinkTarget_use_external,$(1),openssl) + ++ifeq ($(OS),WNT) ++ + $(call gb_LinkTarget_use_system_win32_libs,$(1),\ + secur32 \ + ws2_32 \ +diff --git a/connectivity/Library_postgresql-sdbc-impl.mk b/connectivity/Library_postgresql-sdbc-impl.mk +index 0580a8b..7e8b778 100644 +--- a/connectivity/Library_postgresql-sdbc-impl.mk ++++ b/connectivity/Library_postgresql-sdbc-impl.mk +@@ -46,7 +46,6 @@ $(eval $(call gb_Library_use_externals,postgresql-sdbc-impl,\ + boost_headers \ + postgresql \ + $(if $(filter-out MSC,$(COM)), \ +- openssl \ + $(if $(ENABLE_LDAP),openldap) \ + nss3 \ + plc4 \ + +... and don't uselessly check for openssl in configure + +diff --git a/config_host.mk.in b/config_host.mk.in +index ddd144e..19f8368 100644 +--- a/config_host.mk.in ++++ b/config_host.mk.in +@@ -93,7 +93,6 @@ export DEFAULT_BRAND_IMAGES=@DEFAULT_BRAND_IMAGES@ + export DICT_SYSTEM_DIR=@DICT_SYSTEM_DIR@ + export DISABLE_CVE_TESTS=@DISABLE_CVE_TESTS@ + export DISABLE_DYNLOADING=@DISABLE_DYNLOADING@ +-export DISABLE_OPENSSL=@DISABLE_OPENSSL@ + export DISABLE_PYTHON=@DISABLE_PYTHON@ + export DLOPEN_LIBS=@DLOPEN_LIBS@ + export DLLTOOL=@DLLTOOL@ +@@ -438,8 +439,6 @@ export OOO_JUNIT_JAR=@OOO_JUNIT_JAR@ + export BFFVALIDATOR=@BFFVALIDATOR@ + export OOO_JUNIT_JAR=@OOO_JUNIT_JAR@ + export OOO_VENDOR=@OOO_VENDOR@ +-export OPENSSL_CFLAGS=$(gb_SPACE)@OPENSSL_CFLAGS@ +-export OPENSSL_LIBS=$(gb_SPACE)@OPENSSL_LIBS@ + export OPENSYMBOL_TTF=@OPENSYMBOL_TTF@ + export ORCUS_CFLAGS=$(gb_SPACE)@ORCUS_CFLAGS@ + export ORCUS_LIBS=$(gb_SPACE)@ORCUS_LIBS@ +@@ -569,7 +568,6 @@ export SYSTEM_ODBC_HEADERS=@SYSTEM_ODBC_HEADERS@ + export SYSTEM_ODBC_HEADERS=@SYSTEM_ODBC_HEADERS@ + export SYSTEM_ODFGEN=@SYSTEM_ODFGEN@ + export SYSTEM_OPENLDAP=@SYSTEM_OPENLDAP@ +-export SYSTEM_OPENSSL=@SYSTEM_OPENSSL@ + export SYSTEM_PAGEMAKER=@SYSTEM_PAGEMAKER@ + export SYSTEM_POPPLER=@SYSTEM_POPPLER@ + export SYSTEM_POSTGRESQL=@SYSTEM_POSTGRESQL@ +diff --git a/configure.ac b/configure.ac +index 3862386..45d5e25 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -9422,67 +9422,6 @@ else + AC_MSG_RESULT([no]) + fi + +-dnl =================================================================== +-dnl Check for system openssl +-dnl =================================================================== +-DISABLE_OPENSSL= +-AC_MSG_CHECKING([whether to disable OpenSSL usage]) +-if test "$enable_openssl" = "yes"; then +- AC_MSG_RESULT([no]) +- if test "$_os" = Darwin ; then +- # OpenSSL is deprecated when building for 10.7 or later. +- # +- # http://stackoverflow.com/questions/7406946/why-is-apple-deprecating-openssl-in-macos-10-7-lion +- # http://stackoverflow.com/questions/7475914/libcrypto-deprecated-on-mac-os-x-10-7-lion +- +- with_system_openssl=no +- libo_CHECK_SYSTEM_MODULE([openssl],[OPENSSL],[openssl]) +- elif test "$_os" = "NetBSD" -o "$_os" = "OpenBSD" -o "$_os" = "DragonFly" \ +- && test "$with_system_openssl" != "no"; then +- with_system_openssl=yes +- SYSTEM_OPENSSL=TRUE +- OPENSSL_CFLAGS= +- OPENSSL_LIBS="-lssl -lcrypto" +- else +- libo_CHECK_SYSTEM_MODULE([openssl],[OPENSSL],[openssl]) +- fi +- if test "$with_system_openssl" = "yes"; then +- AC_MSG_CHECKING([whether openssl supports SHA512]) +- AC_LANG_PUSH([C]) +- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]],[[ +- SHA512_CTX context; +-]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([no, openssl too old. Need >= 0.9.8.])]) +- AC_LANG_POP(C) +- fi +-else +- AC_MSG_RESULT([yes]) +- DISABLE_OPENSSL=TRUE +- +- # warn that although OpenSSL is disabled, system libraries may depend on it +- AC_MSG_WARN([OpenSSL has been disabled. No code compiled here will make use of it but system libraries may create indirect dependencies]) +- add_warning "OpenSSL has been disabled. No code compiled here will make use of it but system libraries may create indirect dependencies" +-fi +- +-AC_SUBST([DISABLE_OPENSSL]) +- +-if test "$enable_cipher_openssl_backend" = yes && test "$DISABLE_OPENSSL" = TRUE; then +- if test "$libo_fuzzed_enable_cipher_openssl_backend" = yes; then +- AC_MSG_NOTICE([Resetting --enable-cipher-openssl-backend=no]) +- enable_cipher_openssl_backend=no +- else +- AC_MSG_ERROR([--enable-cipher-openssl-backend needs OpenSSL, but --disable-openssl was given.]) +- fi +-fi +-AC_MSG_CHECKING([whether to enable the OpenSSL backend for rtl/cipher.h]) +-ENABLE_CIPHER_OPENSSL_BACKEND= +-if test "$enable_cipher_openssl_backend" = yes; then +- AC_MSG_RESULT([yes]) +- ENABLE_CIPHER_OPENSSL_BACKEND=TRUE +-else +- AC_MSG_RESULT([no]) +-fi +-AC_SUBST([ENABLE_CIPHER_OPENSSL_BACKEND]) +- + dnl =================================================================== + dnl Check for building gnutls + dnl =================================================================== + +.. and without these gbuild still wants it ... + +diff --git a/external/Module_external.mk b/external/Module_external.mk +index 44280e3..44c1c63 100644 +--- a/external/Module_external.mk ++++ b/external/Module_external.mk +@@ -82,7 +82,6 @@ $(eval $(call gb_Module_add_moduledirs,external,\ + $(call gb_Helper_optional,NSS,nss) \ + $(call gb_Helper_optional,ODFGEN,libodfgen) \ + $(call gb_Helper_optional,OPENLDAP,openldap) \ +- $(call gb_Helper_optional,OPENSSL,openssl) \ + $(call gb_Helper_optional,ORCUS,liborcus) \ + $(call gb_Helper_optional,OWNCLOUD_ANDROID_LIB,owncloud-android-lib) \ + $(call gb_Helper_optional,PAGEMAKER,libpagemaker) \ +diff --git a/oox/CppunitTest_oox_tokenmap.mk b/oox/CppunitTest_oox_tokenmap.mk +index 9eac2a5..ef6d5c9 100644 +--- a/oox/CppunitTest_oox_tokenmap.mk ++++ b/oox/CppunitTest_oox_tokenmap.mk +@@ -20,19 +20,10 @@ $(eval $(call gb_CppunitTest_use_sdk_api,oox_tokenmap)) + + $(eval $(call gb_CppunitTest_use_library_objects,oox_tokenmap,oox)) + +-ifeq ($(TLS),OPENSSL) +-$(eval $(call gb_CppunitTest_use_externals,oox_tokenmap,\ +- openssl \ +- openssl_headers \ +-)) +-else +-ifeq ($(TLS),NSS) + $(eval $(call gb_CppunitTest_use_externals,oox_tokenmap,\ + plc4 \ + nss3 \ + )) +-endif +-endif + + $(eval $(call gb_CppunitTest_use_libraries,oox_tokenmap,\ + avmedia \ +diff --git a/oox/Library_oox.mk b/oox/Library_oox.mk +index fcd7215..a178883 100644 +--- a/oox/Library_oox.mk ++++ b/oox/Library_oox.mk +@@ -67,19 +67,10 @@ $(eval $(call gb_Library_use_externals,oox,\ + boost_headers \ + )) + +-ifeq ($(TLS),OPENSSL) +-$(eval $(call gb_Library_use_externals,oox,\ +- openssl \ +- openssl_headers \ +-)) +-else +-ifeq ($(TLS),NSS) + $(eval $(call gb_Library_use_externals,oox,\ + plc4 \ + nss3 \ + )) +-endif +-endif + + $(eval $(call gb_Library_set_componentfile,oox,oox/util/oox)) + +diff --git a/ucb/CppunitTest_ucb_webdav_local_neon.mk b/ucb/CppunitTest_ucb_webdav_local_neon.mk +index 20e827b..9b869f9 100644 +--- a/ucb/CppunitTest_ucb_webdav_local_neon.mk ++++ b/ucb/CppunitTest_ucb_webdav_local_neon.mk +@@ -34,7 +34,6 @@ $(eval $(call gb_CppunitTest_use_externals,ucb_webdav_local_neon,\ + boost_headers \ + libxml2 \ + neon \ +- openssl \ + )) + + $(eval $(call gb_CppunitTest_use_custom_headers,ucb_webdav_local_neon,\ +diff --git a/ucb/Library_ucpdav1.mk b/ucb/Library_ucpdav1.mk +index 37f3c8f..2167dd2 100644 +--- a/ucb/Library_ucpdav1.mk ++++ b/ucb/Library_ucpdav1.mk +@@ -30,7 +30,6 @@ $(eval $(call gb_Library_use_externals,ucpdav1,\ + boost_headers \ + libxml2 \ + neon \ +- openssl \ + )) + + $(eval $(call gb_Library_use_custom_headers,ucpdav1,\ +@@ -66,7 +65,6 @@ else # WITH_WEBDAV == serf + $(eval $(call gb_Library_use_externals,ucpdav1,\ + boost_headers \ + apr \ +- openssl \ + serf \ + zlib \ + )) +diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk +index 0fc7d25..fe5a208 100644 +--- a/RepositoryExternal.mk ++++ b/RepositoryExternal.mk +@@ -1525,75 +1525,6 @@ endif # ENABLE_HARFBUZZ + + ifeq ($(DISABLE_OPENSSL),TRUE) + +-gb_ExternalProject__use_openssl:= +-gb_LinkTarget__use_openssl_headers:= +-gb_LinkTarget__use_openssl:= +- +-else # !DISABLE_OPENSSL +- +-ifneq ($(SYSTEM_OPENSSL),) +- +-gb_LinkTarget__use_openssl_headers:= +-gb_ExternalProject__use_openssl:= +- +-define gb_LinkTarget__use_openssl +-$(call gb_LinkTarget_set_include,$(1),\ +- $$(INCLUDE) \ +- $(OPENSSL_CFLAGS) \ +-) +-$(call gb_LinkTarget_add_libs,$(1),$(OPENSSL_LIBS)) +- +-endef +- +-else # !SYSTEM_OPENSSL +- +-$(eval $(call gb_Helper_register_packages_for_install,ooo, \ +- openssl \ +-)) +- +-define gb_ExternalProject__use_openssl +-$(call gb_ExternalProject_use_package,$(1),openssl) +- +-endef +- +-define gb_LinkTarget__use_openssl_headers +-$(call gb_LinkTarget_use_external_project,$(1),openssl) +-$(call gb_LinkTarget_set_include,$(1),\ +- -I$(call gb_UnpackedTarball_get_dir,openssl)/include \ +- $$(INCLUDE) \ +-) +- +-endef +- +-define gb_LinkTarget__use_openssl +-$(call gb_LinkTarget_use_package,$(1),openssl) +-ifeq ($(OS),WNT) +-$(call gb_LinkTarget_add_libs,$(1),\ +- $(call gb_UnpackedTarball_get_dir,openssl)/out32dll/ssleay32.lib \ +- $(call gb_UnpackedTarball_get_dir,openssl)/out32dll/libeay32.lib \ +-) +-else +-$(call gb_LinkTarget_add_libs,$(1),\ +- $(call gb_UnpackedTarball_get_dir,openssl)/libssl.a \ +- $(call gb_UnpackedTarball_get_dir,openssl)/libcrypto.a \ +-) +-$(call gb_LinkTarget_use_external_project,$(1),openssl) +-ifeq ($(OS),SOLARIS) +-$(call gb_LinkTarget_add_libs,$(1),\ +- -lnsl \ +- -lsocket \ +-) +-endif +-endif +- +-endef +- +-endif # SYSTEM_OPENSSL +-endif # DISABLE_OPENSSL +- +- +-ifeq ($(DISABLE_OPENSSL),TRUE) +- + define gb_LinkTarget__use_gnutls + $(call gb_LinkTarget_set_include,$(1),\ + $$(INCLUDE) \ +diff --git a/ucb/CppunitTest_ucb_webdav_neon_opts.mk b/ucb/CppunitTest_ucb_webdav_neon_opts.mk +index 91e167b..21e5257 100644 +--- a/ucb/CppunitTest_ucb_webdav_neon_opts.mk ++++ b/ucb/CppunitTest_ucb_webdav_neon_opts.mk +@@ -34,7 +34,6 @@ $(eval $(call gb_CppunitTest_use_externals,ucb_webdav_neon_opts,\ + boost_headers \ + libxml2 \ + neon \ +- openssl \ + )) + + $(eval $(call gb_CppunitTest_use_custom_headers,ucb_webdav_neon_opts,\ +diff --git a/ucb/CppunitTest_ucb_webdav_propfindcache.mk b/ucb/CppunitTest_ucb_webdav_propfindcache.mk +index ebbaee7..e2d064e 100644 +--- a/ucb/CppunitTest_ucb_webdav_propfindcache.mk ++++ b/ucb/CppunitTest_ucb_webdav_propfindcache.mk +@@ -34,7 +34,6 @@ $(eval $(call gb_CppunitTest_use_externals,ucb_webdav_propfindcache,\ + boost_headers \ + libxml2 \ + neon \ +- openssl \ + )) + + $(eval $(call gb_CppunitTest_use_custom_headers,ucb_webdav_propfindcache,\ +diff --git a/ucb/CppunitTest_ucb_webdav_res_access.mk b/ucb/CppunitTest_ucb_webdav_res_access.mk +index ac48f87..c7d151e 100644 +--- a/ucb/CppunitTest_ucb_webdav_res_access.mk ++++ b/ucb/CppunitTest_ucb_webdav_res_access.mk +@@ -34,7 +34,6 @@ $(eval $(call gb_CppunitTest_use_externals,ucb_webdav_res_access,\ + boost_headers \ + libxml2 \ + neon \ +- openssl \ + )) + + $(eval $(call gb_CppunitTest_use_custom_headers,ucb_webdav_res_access,\ diff --git a/debian/patches/no-packagekit-per-default.diff b/debian/patches/no-packagekit-per-default.diff new file mode 100644 index 00000000000..a496c702169 --- /dev/null +++ b/debian/patches/no-packagekit-per-default.diff @@ -0,0 +1,21 @@ +diff --git a/officecfg/registry/data/org/openoffice/Office/Common.xcu b/officecfg/registry/data/org/openoffice/Office/Common.xcu +index 3d138551b593..9cb9831f3236 100644 +--- a/officecfg/registry/data/org/openoffice/Office/Common.xcu ++++ b/officecfg/registry/data/org/openoffice/Office/Common.xcu +@@ -551,13 +551,13 @@ + + + +- true ++ false + + +- true ++ false + + +- true ++ false + + + diff --git a/debian/patches/reportdesign-mention-package.diff b/debian/patches/reportdesign-mention-package.diff new file mode 100644 index 00000000000..f85471bf069 --- /dev/null +++ b/debian/patches/reportdesign-mention-package.diff @@ -0,0 +1,13 @@ +diff --git a/dbaccess/inc/strings.hrc b/dbaccess/inc/strings.hrc +index 47068f43d09e..1f8b9a2331b6 100644 +--- a/dbaccess/inc/strings.hrc ++++ b/dbaccess/inc/strings.hrc +@@ -349,7 +349,7 @@ + #define STR_WARNINGS_DURING_CONNECT NC_("STR_WARNINGS_DURING_CONNECT", "Warnings were encountered while connecting to the data source. Press \"$buttontext$\" to view them.") + #define STR_NAMED_OBJECT_ALREADY_EXISTS NC_("STR_NAMED_OBJECT_ALREADY_EXISTS", "The name '$#$' already exists.\nPlease enter another name." ) + // #i96130# use hard coded name +-#define RID_STR_EXTENSION_NOT_PRESENT NC_("RID_STR_EXTENSION_NOT_PRESENT", "The report, \"$file$\", requires the Report Builder feature.") ++#define RID_STR_EXTENSION_NOT_PRESENT NC_("RID_STR_EXTENSION_NOT_PRESENT", "The report, \"$file$\", requires the Report Builder feature. For this, install the package 'libreoffice-report-builder'.") + + #define STR_COULDNOTCREATE_DRIVERMANAGER NC_("STR_COULDNOTCREATE_DRIVERMANAGER", "Cannot connect to the SDBC driver manager (#servicename#).") + #define STR_NOREGISTEREDDRIVER NC_("STR_NOREGISTEREDDRIVER", "A driver is not registered for the URL #connurl#.") diff --git a/debian/patches/sc-opengl-optional.diff b/debian/patches/sc-opengl-optional.diff new file mode 100644 index 00000000000..20a5cbe2118 --- /dev/null +++ b/debian/patches/sc-opengl-optional.diff @@ -0,0 +1,26 @@ +diff --git a/sc/source/core/data/global.cxx b/sc/source/core/data/global.cxx +index c657bd81defc..d5678c089f41 100644 +--- a/sc/source/core/data/global.cxx ++++ b/sc/source/core/data/global.cxx +@@ -71,6 +71,8 @@ + #include + #include + ++#include ++ + tools::SvRef ScGlobal::xDrawClipDocShellRef; + SvxSearchItem* ScGlobal::pSearchItem = nullptr; + ScAutoFormat* ScGlobal::pAutoFormat = nullptr; +@@ -472,7 +474,11 @@ void ScGlobal::InitPPT() + { + OutputDevice* pDev = Application::GetDefaultDevice(); + +- if (comphelper::LibreOfficeKit::isActive() || OpenGLWrapper::isVCLOpenGLEnabled()) ++ if (comphelper::LibreOfficeKit::isActive() ++#if defined HAVE_FEATURE_OPENGL && defined HAVE_FEATURE_UI ++|| OpenGLWrapper::isVCLOpenGLEnabled() ++#endif ++) + { + // LOK: the below limited precision is not enough for RowColumnHeader. + // OpenGL: limited precision breaks AA of text in charts. diff --git a/debian/patches/search-usr-share-for-images.diff b/debian/patches/search-usr-share-for-images.diff new file mode 100644 index 00000000000..6b91fcc127e --- /dev/null +++ b/debian/patches/search-usr-share-for-images.diff @@ -0,0 +1,137 @@ +diff --git a/vcl/inc/impimagetree.hxx b/vcl/inc/impimagetree.hxx +index 41c4f56..93d80f1 100644 +--- a/vcl/inc/impimagetree.hxx ++++ b/vcl/inc/impimagetree.hxx +@@ -85,6 +85,10 @@ private: + typedef boost::unordered_map< + rtl::OUString, std::pair< bool, BitmapEx >, rtl::OUStringHash > IconCache; + ++ // we want to search zip files (icons) also in /usr/share/ ++ ::rtl::OUString m_datadir; // /usr/share/ ++ ::rtl::OUString m_libdir; // /usr/lib or /usr/lib64 ++ + rtl::OUString m_style; + Zips m_zips; + CheckStyleCache m_checkStyleCache; +@@ -92,6 +96,7 @@ private: + + void setStyle(rtl::OUString const & style ); + ++ void addUrlToZips(const rtl::OUString &url); + void resetZips(); + + bool checkStyleCacheLookup( rtl::OUString const & style, bool &exists ); +diff --git a/vcl/source/gdi/impimagetree.cxx b/vcl/source/gdi/impimagetree.cxx +index 03442fc..cfe6c45 100644 +--- a/vcl/source/gdi/impimagetree.cxx ++++ b/vcl/source/gdi/impimagetree.cxx +@@ -121,7 +121,11 @@ void loadFromStream( + + } + +-ImplImageTree::ImplImageTree() {} ++ImplImageTree::ImplImageTree() ++{ ++ m_datadir = ::rtl::OUString::createFromAscii ( "/usr/share/" ); ++ m_libdir = ::rtl::OUString::createFromAscii ( "/usr/lib/" ); ++} + + ImplImageTree::~ImplImageTree() {} + +@@ -259,6 +263,22 @@ void ImplImageTree::setStyle(rtl::OUString const & style) { + } + } + ++void ImplImageTree::addUrlToZips(const rtl::OUString &url) { ++ if ( url.getLength() == 0 ) ++ return; ++ m_zips.push_back( ++ std::make_pair( ++ url, ++ css::uno::Reference< css::container::XNameAccess >())); ++ sal_Int32 nLibDirPos = url.indexOf( m_libdir ); ++ if ( nLibDirPos >= 0 ) { ++ m_zips.push_back( ++ std::make_pair( ++ url.replaceAt( nLibDirPos, m_libdir.getLength(), m_datadir ), ++ css::uno::Reference< css::container::XNameAccess >())); ++ } ++} ++ + void ImplImageTree::resetZips() { + m_zips.clear(); + { +@@ -284,19 +304,14 @@ void ImplImageTree::resetZips() { + b.appendAscii(RTL_CONSTASCII_STRINGPARAM("_brand.zip")); + bool ok = u.Append(b.makeStringAndClear(), INetURLObject::ENCODE_ALL); + OSL_ASSERT(ok); (void) ok; +- m_zips.push_back( +- std::make_pair( +- u.GetMainURL(INetURLObject::NO_DECODE), +- css::uno::Reference< css::container::XNameAccess >())); ++ addUrlToZips(u.GetMainURL(INetURLObject::NO_DECODE)); + } + { + rtl::OUString url( + RTL_CONSTASCII_USTRINGPARAM( + "$BRAND_BASE_DIR/share/config/images_brand.zip")); + rtl::Bootstrap::expandMacros(url); +- m_zips.push_back( +- std::make_pair( +- url, css::uno::Reference< css::container::XNameAccess >())); ++ addUrlToZips(url); + } + { + rtl::OUString url( +@@ -310,10 +310,7 @@ + b.appendAscii(RTL_CONSTASCII_STRINGPARAM(".zip")); + bool ok = u.Append(b.makeStringAndClear(), INetURLObject::ENCODE_ALL); + OSL_ASSERT(ok); (void) ok; +- m_zips.push_back( +- std::make_pair( +- u.GetMainURL(INetURLObject::NO_DECODE), +- css::uno::Reference< css::container::XNameAccess >())); ++ addUrlToZips(u.GetMainURL(INetURLObject::NO_DECODE)); + } + if ( m_style == "default" ) + { +@@ -321,9 +333,7 @@ void ImplImageTree::resetZips() { + RTL_CONSTASCII_USTRINGPARAM( + "$BRAND_BASE_DIR/share/config/images.zip")); + rtl::Bootstrap::expandMacros(url); +- m_zips.push_back( +- std::make_pair( +- url, css::uno::Reference< css::container::XNameAccess >())); ++ addUrlToZips(url); + } + } + +diff --git a/xmlhelp/source/cxxhelp/provider/provider.cxx b/xmlhelp/source/cxxhelp/provider/provider.cxx +index e55fe5d..848bed7 100644 +--- a/xmlhelp/source/cxxhelp/provider/provider.cxx ++++ b/xmlhelp/source/cxxhelp/provider/provider.cxx +@@ -335,7 +335,7 @@ void ContentProvider::init() + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( " " )) + + setupextension ); + +- uno::Sequence< rtl::OUString > aImagesZipPaths( 2 ); ++ uno::Sequence< rtl::OUString > aImagesZipPaths( 3 ); + xHierAccess = getHierAccess( sProvider, "org.openoffice.Office.Common" ); + + rtl::OUString aPath( getKey( xHierAccess, "Path/Current/UserConfig" ) ); +@@ -344,6 +344,15 @@ void ContentProvider::init() + + aPath = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("$BRAND_BASE_DIR/share/config")); + rtl::Bootstrap::expandMacros(aPath); ++ aImagesZipPaths[ 2 ] = aPath; ++ ++ // try also /usr/share and even before /usr/lib ++ ::rtl::OUString aDataDir = ::rtl::OUString::createFromAscii ( "/usr/share/" ); ++ ::rtl::OUString aLibDir = ::rtl::OUString::createFromAscii ( "/usr/lib/" ); ++ sal_Int32 nLibDirPos = aPath.indexOf( aLibDir ); ++ ++ if ( nLibDirPos >= 0 ) ++ aPath = aPath.replaceAt( nLibDirPos, aLibDir.getLength(), aDataDir ); + aImagesZipPaths[ 1 ] = aPath; + + uno::Reference< uno::XComponentContext > xContext; diff --git a/debian/patches/sensible-lomua.diff b/debian/patches/sensible-lomua.diff new file mode 100644 index 00000000000..6b98bbc4d6e --- /dev/null +++ b/debian/patches/sensible-lomua.diff @@ -0,0 +1,50 @@ +Index: libreoffice-3.6.2~rc1/officecfg/registry/data/org/openoffice/Office/Common.xcu +=================================================================== +--- libreoffice-3.6.2~rc1.orig/officecfg/registry/data/org/openoffice/Office/Common.xcu 2012-10-07 21:03:17.662850386 -0400 ++++ libreoffice-3.6.2~rc1/officecfg/registry/data/org/openoffice/Office/Common.xcu 2012-10-07 21:03:57.174850591 -0400 +@@ -655,7 +655,7 @@ + + + +- ++ sensible-lomua + + + +Index: libreoffice-3.6.2~rc1/shell/source/unix/misc/senddoc.sh +=================================================================== +--- libreoffice-3.6.2~rc1.orig/shell/source/unix/misc/senddoc.sh 2012-10-07 21:03:17.662850386 -0400 ++++ libreoffice-3.6.2~rc1/shell/source/unix/misc/senddoc.sh 2012-10-07 21:29:13.074858447 -0400 +@@ -59,6 +59,32 @@ + shift + fi + ++case `basename "$MAILER"` in ++ sensible-lomua) ++ if [ -x /usr/bin/xdg-email ] ; then ++ MAILER=/usr/bin/xdg-email ++ elif [ -n "$KDE_FULL_SESSION" -a -x /usr/bin/kde-open ] \ ++ || [ -x /usr/bin/gnome-open ] \ ++ || [ -x /usr/bin/xdg-open ]; then ++ # use an undefined mailer, to trigger the default handling ++ MAILER=undefined ++ elif [ -n "$GNOME_DESKTOP_SESSION_ID" -a -x /usr/bin/evolution ]; then ++ MAILER=/usr/bin/evolution ++ elif [ -n "$KDE_FULL_SESSION" -a -x /usr/bin/kmail ]; then ++ MAILER=/usr/bin/kmail ++ elif [ -x /usr/bin/evolution ]; then ++ # default ++ MAILER=/usr/bin/evolution ++ elif [ -x /usr/bin/icedove ]; then ++ # fallback ++ MAILER=/usr/bin/icedove ++ elif [ -x /usr/bin/thunderbird ]; then ++ # fallback ++ MAILER=/usr/bin/thunderbird ++ fi ++ ;; ++esac ++ + # autodetect mail client from executable name + case $(basename "$MAILER" | sed 's/-.*$//') in + diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 00000000000..6e70518e5c6 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,46 @@ +no-check-if-root.diff +debian-opt.diff +jurt-soffice-location.diff +split-evoab.diff +debian-debug.diff +#fix-system-lpsolve-build.diff +build-against-shared-lpsolve.diff +install-fixes.diff +mention-java-common-package.diff +help-msg-add-package-info.diff +sensible-lomua.diff +reportdesign-mention-package.diff +jdbc-driver-classpaths.diff +#search-usr-share-for-images.diff +make-package-modules-not-suck.diff +mediwiki-oor-replace.diff +debian-hardened-buildflags-CPPFLAGS.diff +debian-hardened-buildflags-no-LO-fstack-protector-strong.diff +disable-flaky-tests.diff +#dont-touch-urd.diff +fix-internal-hsqldb-build.diff +javadoc-optional.diff +hppa-is-32bit.diff +no-packagekit-per-default.diff +system-officeotron-and-odfvalidator.diff +no-openssl.diff +cppunit-optional.diff +#disable-unused-test-programs.diff +apparmor-complain.diff +hide-math-desktop-file.patch +appstream-ignore-startcenter.diff +disable-java-in-odk-build-examples-on-zero-vm.diff +do-not-hide-test-output.diff +apparmor-allow-java.security.diff +apparmor-cleanups.diff +apparmor-mesa.diff +disableClassPathURLCheck.diff +use-mariadb-java-instead-of-mysql-java.diff +apparmor-opencl.diff +fix-uicheck-tests-on-i386.patch +fix-flaky-bridgetest.diff +add-access2base-doc.diff +sc-opengl-optional.diff +fix-lo-xlate-lang-nb.diff +disable-shortcuts_tab_navigation-uitest.diff +no-opencl-per-default.diff diff --git a/debian/patches/split-evoab.diff b/debian/patches/split-evoab.diff new file mode 100644 index 00000000000..f563560099f --- /dev/null +++ b/debian/patches/split-evoab.diff @@ -0,0 +1,61 @@ +diff --git a/scp2/source/gnome/file_gnome.scp b/scp2/source/gnome/file_gnome.scp +index c7a13c8..a3f59a6 100644 +--- a/scp2/source/gnome/file_gnome.scp ++++ b/scp2/source/gnome/file_gnome.scp +@@ -25,3 +25,13 @@ File gid_File_Share_Registry_Gnome_Xcd + Name = "gnome.xcd"; + End + #endif ++ ++#ifdef ENABLE_EVOAB2 ++File gid_File_Share_Registry_Evoab_Xcd ++ TXT_FILE_BODY; ++ Styles = (PACKED); ++ Dir = gid_Brand_Dir_Share_Registry; ++ Name = "evoab.xcd"; ++End ++#endif ++ +diff --git a/scp2/source/gnome/module_gnome.scp b/scp2/source/gnome/module_gnome.scp +index 08d9efe..492e274 100644 +--- a/scp2/source/gnome/module_gnome.scp ++++ b/scp2/source/gnome/module_gnome.scp +@@ -31,6 +31,9 @@ Module gid_Module_Optional_Gnome + #if ENABLE_GIO + ,gid_File_Share_Registry_Gnome_Xcd + #endif ++#ifdef ENABLE_EVOAB2 ++ ,gid_File_Share_Registry_Evoab_Xcd ++#endif + ); + End + +diff --git a/postprocess/CustomTarget_registry.mk b/postprocess/CustomTarget_registry.mk +index 510b444..3ff190f 100644 +--- a/postprocess/CustomTarget_registry.mk ++++ b/postprocess/CustomTarget_registry.mk +@@ -331,8 +331,9 @@ ifneq ($(WITH_WEBDAV),) + postprocess_FILES_main += $(postprocess_MOD)/org/openoffice/ucb/Configuration-webdav.xcu + endif + ifeq ($(ENABLE_EVOAB2),TRUE) +-postprocess_FILES_main += $(call gb_XcuModuleTarget_get_target,connectivity/registry/evoab2)/org/openoffice/Office/DataAccess/Drivers-evoab2.xcu +-postprocess_FILES_main += $(postprocess_MOD)/org/openoffice/Office/DataAccess-evoab2.xcu ++postprocess_XCDS += evoab.xcd ++postprocess_FILES_evoab += $(call gb_XcuModuleTarget_get_target,connectivity/registry/evoab2)/org/openoffice/Office/DataAccess/Drivers-evoab2.xcu ++postprocess_FILES_evoab += $(postprocess_MOD)/org/openoffice/Office/DataAccess-evoab2.xcu + postprocess_DRIVERS += evoab + endif + ifeq ($(ENABLE_JAVA),TRUE) +diff --git a/scp2/InstallModule_gnome.mk b/scp2/InstallModule_gnome.mk +index c33f4f52d67b..8f06c0273eff 100644 +--- a/scp2/InstallModule_gnome.mk ++++ b/scp2/InstallModule_gnome.mk +@@ -19,4 +19,8 @@ $(eval $(call gb_InstallModule_add_localized_scpfiles,scp2/gnome,\ + scp2/source/gnome/module_gnome \ + )) + ++$(eval $(call gb_InstallModule_define_if_set,scp2/gnome,\ ++ ENABLE_EVOAB2 \ ++)) ++ + # vim: set shiftwidth=4 tabstop=4 noexpandtab: diff --git a/debian/patches/system-officeotron-and-odfvalidator.diff b/debian/patches/system-officeotron-and-odfvalidator.diff new file mode 100644 index 00000000000..971608ef949 --- /dev/null +++ b/debian/patches/system-officeotron-and-odfvalidator.diff @@ -0,0 +1,16 @@ +diff --git a/bin/odfvalidator.sh.in b/bin/odfvalidator.sh.in +index 56e2f29..9415ef6 100644 +--- a/bin/odfvalidator.sh.in ++++ b/bin/odfvalidator.sh.in +@@ -1,2 +1,2 @@ + #!/usr/bin/env bash +-java -Djavax.xml.validation.SchemaFactory:http://relaxng.org/ns/structure/1.0=org.iso_relax.verifier.jaxp.validation.RELAXNGSchemaFactoryImpl -Dorg.iso_relax.verifier.VerifierFactoryLoader=com.sun.msv.verifier.jarv.FactoryLoaderImpl -jar @TARFILE_LOCATION@/@ODFVALIDATOR_JAR@ "$@" ++java -Djavax.xml.validation.SchemaFactory:http://relaxng.org/ns/structure/1.0=org.iso_relax.verifier.jaxp.validation.RELAXNGSchemaFactoryImpl -Dorg.iso_relax.verifier.VerifierFactoryLoader=com.sun.msv.verifier.jarv.FactoryLoaderImpl -jar /usr/share/java/odfvalidator.jar "$@" +diff --git a/bin/officeotron.sh.in b/bin/officeotron.sh.in +index 7281f1b..6eab5b5 100644 +--- a/bin/officeotron.sh.in ++++ b/bin/officeotron.sh.in +@@ -1,2 +1,2 @@ + #!/usr/bin/env bash +-java -jar @TARFILE_LOCATION@/@OFFICEOTRON_JAR@ "$@" ++java -jar /usr/share/java/officeotron.jar "$@" diff --git a/debian/patches/use-mariadb-java-instead-of-mysql-java.diff b/debian/patches/use-mariadb-java-instead-of-mysql-java.diff new file mode 100644 index 00000000000..a88823c3989 --- /dev/null +++ b/debian/patches/use-mariadb-java-instead-of-mysql-java.diff @@ -0,0 +1,59 @@ +>From 1172166889764ae0e77488e5d173f33961b9859b Mon Sep 17 00:00:00 2001 +From: Markus Koschany +Date: Fri, 9 Nov 2018 23:06:15 +0100 +Subject: [PATCH] mariadb + +--- + connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java | 4 ++-- + .../mysql/org/openoffice/Office/DataAccess/Drivers.xcu | 2 +- + connectivity/source/drivers/mysql/YDriver.cxx | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java b/connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java +index 3817add48da6..ace57bd35d98 100644 +--- a/connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java ++++ b/connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java +@@ -64,7 +64,7 @@ public class JdbcLongVarCharTest extends ComplexTestCase + */ + String url = System.getenv("CONNECTIVITY_TEST_MYSQL_DRIVER_JDBC"); + com.sun.star.beans.PropertyValue prop[] = new PropertyValue[1]; +- prop[0] = new PropertyValue("JavaDriverClass", 0, "com.mysql.jdbc.Driver", PropertyState.DIRECT_VALUE); ++ prop[0] = new PropertyValue("JavaDriverClass", 0, "org.mariadb.jdbc.Driver", PropertyState.DIRECT_VALUE); + + // get the remote office component context + XMultiServiceFactory xServiceManager = param.getMSF(); +diff --git a/connectivity/registry/mysql/org/openoffice/Office/DataAccess/Drivers.xcu b/connectivity/registry/mysql/org/openoffice/Office/DataAccess/Drivers.xcu +index 77988448f..acd8bfdaf 100644 +--- a/connectivity/registry/mysql_jdbc/org/openoffice/Office/DataAccess/Drivers.xcu ++++ b/connectivity/registry/mysql_jdbc/org/openoffice/Office/DataAccess/Drivers.xcu +@@ -33,7 +33,7 @@ + + + +- com.mysql.jdbc.Driver ++ org.mariadb.jdbc.Driver + + + +diff --git a/connectivity/source/drivers/mysql/YDriver.cxx b/connectivity/source/drivers/mysql/YDriver.cxx +index 95094265e..c0ad7802e 100644 +--- a/connectivity/source/drivers/mysql_jdbc/YDriver.cxx ++++ b/connectivity/source/drivers/mysql_jdbc/YDriver.cxx +@@ -54,7 +54,7 @@ namespace + OUString getJavaDriverClass(css::uno::Sequence const& info) + { + return comphelper::NamedValueCollection(info).getOrDefault("JavaDriverClass", +- OUString("com.mysql.jdbc.Driver")); ++ OUString("org.mariadb.jdbc.Driver")); + } + } + +@@ -170,7 +170,7 @@ Sequence lcl_convertProperties(T_DRIVERTYPE _eType, + if (!jdc) + { + aProps.push_back(PropertyValue("JavaDriverClass", 0, +- makeAny(OUString("com.mysql.jdbc.Driver")), ++ makeAny(OUString("org.mariadb.jdbc.Driver")), + PropertyState_DIRECT_VALUE)); + } + } diff --git a/debian/python3-access2base.links b/debian/python3-access2base.links new file mode 100644 index 00000000000..f76ba1c90f7 --- /dev/null +++ b/debian/python3-access2base.links @@ -0,0 +1 @@ +usr/share/doc/libreoffice-common/access2base.html usr/share/doc/python3-access2base/access2base.html diff --git a/debian/python3-uno.NEWS b/debian/python3-uno.NEWS new file mode 100644 index 00000000000..fb4312b42c4 --- /dev/null +++ b/debian/python3-uno.NEWS @@ -0,0 +1,11 @@ +libreoffice (1:3.5.2-2) unstable; urgency=low + + * The script provider for python (which was in python3-uno before) has been + split out into libreoffice-script-provider-python as it's the same in both + variants and python3-uno should contain just the module anyway. + + If you relied on python3-uno for the script provider, install the new + package in addition. + + -- Rene Engelhard Sat, 07 Apr 2012 14:30:41 +0200 + diff --git a/debian/python3-uno.ucf b/debian/python3-uno.ucf new file mode 100644 index 00000000000..8a56cd5b703 --- /dev/null +++ b/debian/python3-uno.ucf @@ -0,0 +1 @@ +/usr/lib/libreoffice/share/.registry/pyuno.xcd /etc/libreoffice/registry/pyuno.xcd diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000000..c64c2028c54 --- /dev/null +++ b/debian/rules @@ -0,0 +1,3876 @@ +#!/usr/bin/make -f +################################################################################ +# LibreOffice source package rules file +# +# Please see debian/README for detailed documentation about the build system, and +# how to build LibreOffice. +################################################################################ +# Authors: +# Chris Halls +# Rene Engelhard +# Copyright 2002-2015 Software in the Public Interest, Inc. +# Portions Copyright 2010 Canonical Ltd. Author: Matthias Klose +# Portions Copyright 2011-2013 Canonical Ltd. Author: Bjoern Michaelsen +# Licensed under the GNU General Public License, version 2. See the file +# /usr/share/common-licenses/GPL or . +################################################################################ + +vafilt = $(subst $(2)=,,$(filter $(2)=%,$(1))) + +include /usr/share/dpkg/pkg-info.mk +CURDIR ?= $(realpath $(dir $(firstword $(MAKEFILE_LIST)))/..) +BASE_VERSION:=$(shell echo $(DEB_VERSION) | cut -d: -f1):$(DEB_VERSION_UPSTREAM) +BINARY_VERSION=$(DEB_VERSION) +#HELP_L10N_VIRTUAL_VERSION:=$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d: -f2 | tr [~] [\\-]) +HELP_L10N_VIRTUAL_VERSION:=7.0 +OOVER:=7.0 +NEXT_OOVER:=$(shell echo "$(OOVER) + 0.1" | bc) + +ARCH_INDEP_PACKAGES := $(shell dh_listpackages -i) +ARCH_DEP_PACKAGES := $(shell dh_listpackages -a) +PACKAGES := $(ARCH_INDEP_PACKAGES) $(ARCH_DEP_PACKAGES) + +include /usr/share/dpkg/architecture.mk +include /usr/share/dpkg/vendor.mk +SHELL:=/bin/bash + +#SYSTEM_GCC_VERSION = $(shell gcc --version | sed -n '/^gcc/s/.*\(.\..\)\..$$/\1/p') +#FIXME +SYSTEM_GCC_VERSION = $(shell gcc --version | sed -n '/^gcc/s/.*\(.\..\)\../\1/p' | cut -d" " -f1) +ifeq "$(SYSTEM_GCC_VERSION)" "0.0" # gcc 10+ +SYSTEM_GCC_VERSION = $(shell gcc --version | sed -n '/^gcc/s/.*\(..\..\)\../\1/p' | cut -d" " -f1) +endif + +PKGDIR:=debian/libreoffice +OODIRNAME=libreoffice +OODIR:=usr/lib/$(OODIRNAME) +OOSDKDIR:=$(OODIR)/sdk + +# Figure out who's building this package. +ifneq "$(DEB_VENDOR)" "Debian" +OOO_VENDOR:=The Document Foundation, $(DEB_PARENT_VENDOR) and $(DEB_VENDOR) +else +OOO_VENDOR=The Document Foundation/$(DEB_VENDOR) +endif +export OOO_VENDOR + +# debhelper +export DH_OPTIONS +export DH_ALWAYS_EXCLUDE=CVS:.svn:.bzr:.git +#export DH_VERBOSE=1 +# quilt +export QUILT_PATCHES=debian/patches +export QUILT_OPTIONS="-p1 -F0" + +SOURCE_TREE=. +STAMP_DIR=debian/stampdir +TARFILE_LOCATION=$(CURDIR)/tarballs +export TARFILE_LOCATION +USE_SOURCE_TARBALLS=y +USE_GIT_TARBALLS=n +ifeq "$(USE_GIT_TARBALLS)" "y" +GIT_BASEURL:=git://anongit.freedesktop.org/libreoffice +lo_sources_ver=$(shell grep AC_INIT $(SOURCE_TREE)/configure.ac | grep documentfoundation | cut -d, -f2 | sed -e 's,\[,,' -e 's,\],,') +# NOT in proper libreoffice-3-6 branch +# use ./g checkout -b tag-libreoffice-3.6.2.1 libreoffice-3.6.2.1 +GIT_TAG=libreoffice-$(lo_sources_ver) +GIT_BRANCH=libreoffice-7-0-1 +endif +ifeq "$(USE_SOURCE_TARBALLS)" "y" +lo_sources_ver=$(shell cat $(CURDIR)/sources.ver | cut -d= -f2) +endif + +######### +# Default package configuration +# +OOO_ARCHS = alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +PATCHSET=$(DEB_VENDOR) +BUILD_DEPS=\ + autoconf,\ + automake,\ + bc,\ + bison,\ + bzip2,\ + flex (>= 2.3.35), \ + fontforge-nox | fontforge, \ + gperf (>= 3.1),\ + libc0.1 (>= 2.10.2-7) [kfreebsd-any],\ + libfontconfig1-dev,\ + libfreetype6-dev (>= 2.2.0),\ + pkg-config,\ + unzip,\ + xsltproc,\ + zip,\ + zlib1g-dev\ + +BUILD_DEPS_INDEP += rdfind, symlinks + +# These are components which can be built from internal copies, or used from the +# distribution. See configure --help for valid values (--with-system-). +SYSTEM_STUFF = dicts + +ENABLE_GUI=y + +ifeq ($(filter nopython,$(DEB_BUILD_PROFILES)),) +ENABLE_PYTHON=y +ifeq "$(ENABLE_PYTHON)" "y" + CONFIGURE_FLAGS += --enable-python=system + ENABLE_SCRIPT_PROVIDER_PYTHON=y + PACKAGE_LIBRELOGO=y +endif +# THIS IS ONLY FOR TESTING. When building against a specified pythonX.Y +# this will work inside OOo but *not* from outside OOo unless the user +# uses pythonX.Y directly (and the dh_pycentral-created dependencies allow +# also the non-working default python then) - see e.g. #587402. Also +# note we are NOT working with python < 2.6 anymore! +PYTHON_VERSION=current +ifeq "$(PYTHON_VERSION)" "current" + PYTHON=python3 + export PYTHON +else + # somehow configure insists on using python3 "for pyuno". The only way to + # override this (afaics) is this... + PYTHON=python$(PYTHON_VERSION) + PYTHON_CFLAGS=$(shell pkg-config --cflags python-$(PYTHON_VERSION)) + PYTHON_LIBS=$(shell pkg-config --libs python-$(PYTHON_VERSION)) + export PYTHON PYTHON_VERSION PYTHON_CFLAGS PYTHON_LIBS +endif +endif +BUILD_ONLY_EN_US=n +ifeq ($(filter nojava,$(DEB_BUILD_PROFILES)),) + ENABLE_JAVA=y + ifeq "$(ENABLE_JAVA)" "y" + JDK=default + include /usr/share/java/java_defaults.mk + ifneq "$(JDK)" "default" + JAVA_MAINVER=7 + endif + endif +else + ENABLE_JAVA=n +endif +JAVAHELPER_MIN_VERSION= (>= 0.37~) +SYSTEM_STUFF += hunspell +SYSTEM_STUFF += altlinuxhyph +SYSTEM_STUFF += boost +BOOST_VERSION=default +ifeq "$(BOOST_VERSION)" "default" + BOOST_MINVER= (>= 1.66) + ifeq "$(SYSTEM_GCC_VERSION)" "10.0" + BOOST_MINVER= (>= 1.71) + endif +endif +# libmdds-dev depends on libboost-dev, which will be removed +# when you install a non-default libboostX.Y-dev +ifeq "$(BOOST_VERSION)" "default" +SYSTEM_STUFF += mdds +endif +USE_EXTERNAL_CXXLIBS=y +SYSTEM_STUFF += mythes +SYSTEM_STUFF += icu +SYSTEM_STUFF += librevenge +SYSTEM_STUFF += libwpd libwpg libwps +SYSTEM_STUFF += libvisio +SYSTEM_STUFF += libcdr +SYSTEM_STUFF += libmspub +SYSTEM_STUFF += libmwaw +SYSTEM_STUFF += libodfgen +SYSTEM_STUFF += libepubgen +SYSTEM_STUFF += libetonyek +SYSTEM_STUFF += libfreehand +# this is libe-book, NOT evolutions libebook (which is +# dlopen()'ed anyway and whose headers we need from the +# system anyways if enabled +SYSTEM_STUFF += libebook +SYSTEM_STUFF += libabw +SYSTEM_STUFF += libpagemaker +SYSTEM_STUFF += libzmf +SYSTEM_STUFF += libstaroffice +SYSTEM_STUFF += libqxp +SYSTEM_STUFF += qrcodegen +BUILD_CAIROCANVAS=y +SYSTEM_STUFF += cairo +ifeq "$(ENABLE_GUI)" "y" +BUILD_PLASMA=y +ENABLE_QT5=n +QT5_MINVER= (>= 5.6) +endif +ifeq "$(BUILD_PLASMA)" "y" + ENABLE_KF5=y + # KF5 depends on Qt5 + ifeq "$(ENABLE_KF5)" "y" + ENABLE_QT5=y + KF5_QT5_DEPENDS := libreoffice-qt5 (= $${binary:Version}) + endif +endif +# https://www.debian.org/doc/debian-policy/ says this is not defined and must +# be ignored, but dh_strip mentions (and honours) it, so... +ifneq (noautodbgsym,$(findstring noautodbgsym,$(DEB_BUILD_OPTIONS))) +BUILD_DBGSYM_PACKAGES=y +ifeq "$(DEB_HOST_ARCH)" "amd64" +USE_DWZ=y +DWZ_ARGS:=-L 100000000 +endif +endif +SYSTEM_STUFF += xmlsec + +# this changes the packages built/contents of packages (-subsequentcheckbase) +# This is not exactly allowed in https://wiki.debian.org/BuildProfileSpec#Registered_profile_names +# but it doesn't have real practical difference, does it? +ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + BUILD_TEST_PACKAGES=y +endif + +ifneq ($(MAKECMDGOALS),build-indep) +ENABLE_SYMBOLS=y +SMALL_SYMBOLS=y +endif +ifeq ($(MAKECMDGOALS),build-indep) +# no need to do a double build... +BUILD_NOGUI_PACKAGES=n +endif + +ifeq "$(ENABLE_JAVA)" "y" + SYSTEM_STUFF += beanshell + SYSTEM_STUFF += hsqldb +endif +SYSTEM_STUFF += lpsolve +USE_SHARED_LPSOLVE=y +LPSOLVE_MIN_VERSION= (>= 5.5.0.13-5+b1) +ENABLE_COINMP=y +SYSTEM_STUFF += coinmp +USE_DBUS=y +ifeq "$(USE_DBUS)" "y" + ifeq (,$(findstring linux,$(DEB_HOST_ARCH_OS))) + ENABLE_BLUETOOTH=n + else + ENABLE_BLUETOOTH=y + SYSTEM_STUFF += bluez + endif + ENABLE_PACKAGEKIT=n +endif +ENABLE_AVAHI=y +ifeq "$(ENABLE_GUI)" "y" +USE_GSTREAMER=y +endif +ENABLE_WEBDAV=y +ifeq "$(ENABLE_WEBDAV)" "y" +WEBDAV_LIB=neon + ifeq "$(WEBDAV_LIB)" "neon" + SYSTEM_STUFF += neon + NEON_SECTYPE=gnutls + NEONSONR=27 + else + SYSTEM_STUFF += apr + SYSTEM_STUFF += serf + endif +endif +SYSTEM_STUFF += redland +PACKAGE_SDK=y +ifneq ($(filter nodoc,$(DEB_BUILD_PROFILES)),) +PACKAGE_SDK_DOCS=n +else +PACKAGE_SDK_DOCS=y +endif +PACKAGE_LOKIT=y +ENABLE_CHART_TESTS=n +# will not work, uses schema/ stripped in the tarballs +ifeq "$(USE_SOURCE_TARBALLS)" "y" +ENABLE_EXPORT_VALIDATION_TESTS=n +endif +JUNIT_MIN_VER= (>= 4.8.2-2) +CURL_SECTYPE=gnutls +USE_LIBSUITESPARSE=y +SUITESPARSE_MIN_VERSION= (>= 1:3.4.0) +PARALLEL_BUILD=y +ENABLE_LDAP=y +SYSTEM_STUFF += openldap +SYSTEM_STUFF += epoxy +ifeq "$(ENABLE_JAVA)" "y" + ENABLE_REPORTBUILDER=y + SYSTEM_STUFF += jfreereport + ENABLE_MEDIAWIKI=y + SYSTEM_STUFF += apache-commons + ENABLE_SCRIPT_PROVIDER_BSH=y + ENABLE_SCRIPT_PROVIDER_JS=y + ENABLE_NLPSOLVER=y +else + ENABLE_REPORTBUILDER=n + ENABLE_MEDIAWIKI=n + ENABLE_SCRIPT_PROVIDER_BSH=n + ENABLE_SCRIPT_PROVIDER_JS=n + ENABLE_NLPSOLVER=n +endif +ENABLE_SDBC_POSTGRESQL=y +ifeq "$(ENABLE_GUI)" "y" +BUILD_GTK3=y + # introspection needs GTK3 + ifeq "$(BUILD_GTK3)" "y" + ENABLE_INTROSPECTION=y + endif +endif +ENABLE_EVO2=y +ENABLE_GIO=y +ENABLE_DCONF=y +ENABLE_RANDR=y +PACKAGE_BASE=y +SYSTEM_STUFF += graphite +SYSTEM_STUFF += harfbuzz +SYSTEM_STUFF += libexttextcat +SYSTEM_STUFF += cppunit +DEFAULT_IMAGE=colibre +IMAGES:=$(DEFAULT_IMAGE) sifr sifr_dark sifr_dark_svg breeze breeze_dark breeze_dark_svg breeze_svg elementary elementary_svg karasa_jaga sukapura sukapura_svg +# FIXME +IMAGES_PACKAGES=$(subst _,-,$(filter-out sukapura_svg,$(filter-out sifr_dark_svg,$(filter-out breeze_dark_svg,$(filter-out sifr_dark,$(filter-out breeze_dark,$(filter-out breeze_svg,$(filter-out elementary_svg,$(IMAGES))))))))) +CONFIGURE_FLAGS_INDEP += --with-theme="$(IMAGES)" +MYSQL_FLAVOUR=default +# set this also to y for system-mysql.. +SYSTEM_STUFF += mariadb +SYSTEM_STUFF += postgresql +DICT_DIR=/usr/share/hunspell +HYPH_DIR=/usr/share/hyphen +THES_DIR=/usr/share/mythes +SYSTEM_STUFF += libcmis +SYSTEM_STUFF += jpeg +SYSTEM_STUFF += libxml +SYSTEM_STUFF += expat +SYSTEM_STUFF += odbc +SYSTEM_STUFF += curl +SYSTEM_STUFF += sane +ENABLE_PDFIMPORT=y +ENABLE_POPPLER=y +SYSTEM_STUFF += poppler +ifneq (big,$(DEB_HOST_ARCH_ENDIAN)) +ENABLE_SKIA=y +endif +SYSTEM_STUFF += libpng +SYSTEM_STUFF += nss +ENABLE_HELP=y +ifeq "$(ENABLE_HELP)" "y" + ENABLE_HTML_HELP=y + ifeq "$(ENABLE_HTML_HELP)" "y" + HELP_DEPENDS := libreoffice-help-common (= $${binary:Version}), firefox-esr | epiphany-browser | konqueror | chromium | firefox + HELP_COMMON_DEPENDS := libjs-normalize.css + else + HELP_DEPENDS := libreoffice-writer + DEBHELPER_OPTIONS += -Nlibreoffice-help-common + endif + SYSTEM_STUFF += clucene +endif +SYSTEM_STUFF += lcms2 +PACKAGE_UNOWINREG_DLL=y +ifeq "$(DEB_VENDOR)" "Debian" +BUILD_UNOWINREG_DLL=y +endif +SYSTEM_STUFF += liblangtag +SYSTEM_STUFF += orcus +USE_UCPP=y +ifeq "$(USE_UCPP)" "y" + SYSTEM_STUFF += ucpp +endif +# kfreebsd runs into SIZE_MAX problems, and the rest might +# get OOM (mips(el)...) so enable mergelibs only for 64bit +# archs +ifeq (,$(filter kfreebsd,$(DEB_HOST_ARCH))) + ifeq "$(DEB_HOST_ARCH_BITS)" "64" + ENABLE_MERGELIBS=y + endif +endif +#ifeq "$(ENABLE_MERGELIBS)" "y" +# ENABLE_LTO=y +#else + ENABLE_LTO=n +#endif +USE_OPENCL=y +ENABLE_FIREBIRD=y +ifeq "$(ENABLE_FIREBIRD)" "y" + SYSTEM_STUFF += firebird + ifeq (,$(filter firebird, $(SYSTEM_STUFF))) + SYSTEM_STUFF += libatomic-ops + SYSTEM_STUFF += libtommath + endif +endif +ENABLE_EOT=y +ifeq "$(ENABLE_EOT)" "y" +SYSTEM_STUFF += libeot +endif +SYSTEM_STUFF += glm +BUILD_PPC64EL=y +BUILD_ARM64=y +SYSTEM_STUFF += gpgmepp +INSTALL_APPARMOR_PROFILES=y +ENABLE_APPARMOR_PROFILES=y +CHECK_APPARMOR_PROFILES=true +ENABLE_LIBNUMBERTEXT=y +SYSTEM_STUFF += libnumbertext + +# Default flags to pass to configure +CONFIGURE_FLAGS+= \ + --with-vendor='$(OOO_VENDOR)' \ + --with-extra-buildid='$(DEB_VENDOR) package version: $(DEB_VERSION)' \ + --prefix=/usr --mandir=/usr/share/man \ + --docdir=/usr/share/doc/libreoffice \ + --libdir=/usr/lib \ + --bindir=/usr/bin \ + --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \ + --disable-online-update \ + --disable-fetch-external \ + --without-fonts --enable-build-opensymbol \ + --without-myspell-dicts \ + --with-branding=$(CURDIR)/debian/branding + +ifeq "$(ENABLE_GUI)" "y" +BUILD_DEPS += ,\ + libcups2-dev,\ + libgl-dev,\ + libice-dev,\ + libsm-dev,\ + libx11-dev,\ + libx11-xcb-dev, \ + libxaw7-dev,\ + libxext-dev,\ + libxinerama-dev,\ + libxkbfile-dev,\ + libxrender-dev,\ + libxt-dev,\ + libxtst-dev,\ + x11proto-render-dev +endif + +ifeq "$(ENABLE_HELP)" "y" +CONFIGURE_FLAGS_INDEP+= --with-help + ifeq "$(ENABLE_HTML_HELP)" "y" + CONFIGURE_FLAGS_INDEP+= --with-help=html + endif +endif + +ifeq "$(shell echo $(DEB_VERSION_UPSTREAM) | grep -E '(alpha|beta)'; echo $$?)" "1" +CONFIGURE_FLAGS += --enable-release-build +RELEASE_BUILD := y +endif + +ifeq "$(DEB_DISTRIBUTION)" "UNRELEASED" +BUGS=mailto:debian-openoffice@lists.debian.org +endif + +ifneq (terse,$(findstring terse,$(DEB_BUILD_OPTIONS))) +export verbose=t +endif + +############# +# Architecture-specific changes + +# helper to generate no_archs macros (pass name of source macro) +define gen_no_archs + _no_arch_macro = $(subst OOO_,OOO_NO_,$1) + _no_arch_tmp_$1 = $$(foreach _a,$$(filter-out $$(call $1),$(OOO_ARCHS)),!$$(_a)) + $$(_no_arch_macro) = $$(if $$(_no_arch_tmp_$1),$$(_empty) [$$(_no_arch_tmp_$1)]) +endef + +PLATFORMID := $(shell grep PLATFORMID debian/vars.$(DEB_HOST_ARCH) | cut -d"=" -f2) + + +# let's do this only on archs where we have chromium, which is supposedly even only the archs +# where alsp pdfium is supported. +OOO_PDFIUM_ARCHS := i386 amd64 armhf arm64 +ifneq (,$(filter $(DEB_HOST_ARCH),$(OOO_PDFIUM_ARCHS))) +ENABLE_PDFIUM=y +else +ENABLE_PDFIUM=n +endif + +OOO_64BIT_ARCHS = $(filter alpha amd64 arm64 ia64 kfreebsd-amd64 mips64 mips64el ppc64 ppc64el s390x sparc64, $(OOO_ARCHS)) +$(eval $(call gen_no_archs,OOO_64BIT_ARCHS)) +OOO_BE_ARCHS = $(filter hppa m68k mips mips64 powerpc powerpcspe ppc64 s390 s390x sparc sparc64,$(OOO_ARCHS)) +OOO_LE_ARCHS = $(filter-out $(OOO_BE_ARCHS),$(OOO_ARCHS)) +$(eval $(call gen_no_archs,OOO_LE_ARCHS)) + +OOO_CHECK_ARCHS := $(filter-out kfreebsd-i386 kfreebsd-amd64 mips mipsel mips64el armel,$(OOO_ARCHS)) +$(eval $(call gen_no_archs,OOO_CHECK_ARCHS)) +#OOO_JUNIT_ARCHS := i386 amd64 armhf arm64 +OOO_JUNIT_ARCHS := amd64 arm64 +$(eval $(call gen_no_archs,OOO_JUNIT_ARCHS)) +#OOO_CHECK_FATAL_ARCHS := i386 amd64 armhf arm64 +OOO_CHECK_FATAL_ARCHS := amd64 arm64 + +RUN_MAKE_CHECK=n +ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_CHECK_ARCHS))) + RUN_MAKE_CHECK=y + endif + ifeq "$(ENABLE_JAVA)" "y" + ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_JUNIT_ARCHS))) + ENABLE_JUNIT4=y + endif + endif + IGNORE_MAKE_CHECK_FAILURES=- + ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_CHECK_FATAL_ARCHS))) + IGNORE_MAKE_CHECK_FAILURES:= + endif +endif + +# Java... +ifeq "$(JDK)" "default" +OOO_JAVA_ARCHS = $(filter $(OOO_ARCHS),$(java6_architectures)) +else +OOO_JAVA_ARCHS = $(OOO_ARCHS) +endif +$(eval $(call gen_no_archs,OOO_JAVA_ARCHS)) + +OOO_ARCH_DEP_EXTENSIONS_ARCHS := $(OOO_ARCHS) +OOO_EXTENSIONS_ARCHS := $(OOO_ARCH_DEP_EXTENSIONS_ARCHS) + +OOO_BASE_ARCHS := $(OOO_JAVA_ARCHS) +$(eval $(call gen_no_archs,OOO_BASE_ARCHS)) +OOO_REPORTBUILDER_ARCHS := $(OOO_BASE_ARCHS) +$(eval $(call gen_no_archs,OOO_REPORTBUILDER_ARCHS)) +OOO_FIREBIRD_ARCHS := $(OOO_BASE_ARCHS) +$(eval $(call gen_no_archs,OOO_FIREBIRD_ARCHS)) +OOO_NOGUI_ARCHS := amd64 i386 arm64 armhf s390x ppc64 ppc64el +$(eval $(call gen_no_archs,OOO_NOGUI_ARCHS)) + +ifneq (,$(filter $(DEB_HOST_ARCH),$(OOO_NO_BASE_ARCHS))) + ifneq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_BASE_ARCHS))) + PACKAGE_BASE=n + ENABLE_SDBC_POSTGRESQL=n + ENABLE_EVO2=n + ENABLE_REPORTBUILDER=n + DEBHELPER_OPTIONS += -Nlibreoffice-base libreoffice-base-core -Nlibreoffice-base-drivers + DEBHELPER_OPTIONS += -Nlibreoffice-evolution + DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-postgresql -Nlibreoffice-sdbc-mysql + DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-hsqldb -Nlibreoffice-sdbc-firebird + DEBHELPER_OPTIONS += -Nlibreoffice-report-builder-bin -Nlibreoffice-report-builder + DEBHELPER_OPTIONS += -Npython3-access2base +# CONFIGURE_FLAGS += --disable-database-connectivity + endif +endif + +ifeq (,$(filter $(DEB_HOST_ARCH),$(OOO_EXTENSIONS_ARCHS))) + ENABLE_MEDIAWIKI=n + ENABLE_NLPSOLVER=n + DEBHELPER_OPTIONS += -Nlibreoffice-wiki-publisher -Nlibreoffice-script-provider-python -Nlibreoffice-nlpsolver + CONFIGURE_FLAGS += --disable-extension-integration --disable-extensions +else + CONFIGURE_FLAGS += --enable-extension-integration +endif + +ifeq (,$(filter $(DEB_HOST_ARCH),$(OOO_JAVA_ARCHS))) + ENABLE_JAVA=n + ENABLE_REPORTBUILDER=n + ENABLE_MEDIAWIKI=n + ENABLE_NLPSOLVER=n +endif + +ifeq "$(BUILD_TEST_PACKAGES)" "n" + DEBHELPER_OPTIONS += -Nlibreoffice-subsequentcheckbase -Nlibreoffice-smoketest-data +endif + +ifeq "$(ENABLE_GUI)" "y" + ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_NOGUI_ARCHS))) + BUILD_NOGUI_PACKAGES=y + endif +else +CONFIGURE_FLAGS += --disable-gui +DEBHELPER_OPTIONS += -Nlibreoffice-core -Nlibreoffice-calc -Nlibreoffice-writer -Nlibreoffice-draw -Nlibreoffice-report-builder-bin -Nlibreoffice-base -Nlibreoffice-impress -Nlibreoffice-math +# transitional package.. +DEBHELPER_OPTIONS += -Nlibreoffice-kde5 +endif +ifneq "$(BUILD_NOGUI_PACKAGES)" "y" +DEBHELPER_OPTIONS += -Nlibreoffice-core-nogui -Nlibreoffice-calc-nogui -Nlibreoffice-writer-nogui -Nlibreoffice-draw-nogui -Nlibreoffice-report-builder-bin-nogui -Nlibreoffice-base-nogui -Nlibreoffice-impress-nogui -Nlibreoffice-math-nogui +endif + +############# +# Distro-specific overrides + +# Debian Buster +ifeq "$(DEB_DISTRIBUTION)" "buster-backports" + BUGS=mailto:debian-backports@lists.debian.org + SYSTEM_STUFF := $(filter-out libmwaw xmlsec mdds orcus libnumbertext,$(SYSTEM_STUFF)) + USE_DWZ := n + BUSTER_BACKPORT=y +endif + +CONFIGURE_FLAGS += $(foreach i, $(SYSTEM_STUFF),--with-system-$(i)) + +CC_PREFIX:=$(shell gcc -dumpmachine)- + +# generally use clang +USE_CLANG=n +# allow clang for skia? +ALLOW_CLANG=y + +CLANG_VERSION=default +ifeq "$(USE_CLANG)" "y" + ENABLE_COMPILER_PLUGINS=n +endif + +ifneq "$(USE_CLANG)" "y" + ifneq "$(GCC_VERSION)" "" + ifneq "$(SYSTEM_GCC_VERSION)" "$(GCC_VERSION)" + BUILD_DEPS += , gcc-$(GCC_VERSION), g++-$(GCC_VERSION) + CONFIGURE_FLAGS+= \ + CC=$(CC_PREFIX)gcc-$(GCC_VERSION) \ + CXX=$(CC_PREFIX)g++-$(GCC_VERSION) + endif + endif + BUILD_DEPS += , gcc (>= 4:7), g++ (>= 4:7) + # skia build picks up clang if present (for performance reasons, + # at least on Windows...). See the thread starting at + # https://lists.freedesktop.org/archives/libreoffice/2020-April/084929.html + # Make it a explicit build-dependency so we don't have builds + # "randomly" using gcc or clang depending on whether clang is installed + # or not + # not on armel, though for now since it fails to build with clang + # (see #963162, #963167) + ifeq (armel,$(findstring armel,$(DEB_HOST_ARCH))) + ALLOW_CLANG=n + endif + ifeq "$(ENABLE_SKIA)" "y" + ifeq "$(ALLOW_CLANG)" "y" + ifeq (ccache,$(findstring ccache,$(DEB_BUILD_OPTIONS))) + export CCACHE_CPP2=1 + endif + ifeq "$(CLANG_VERSION)" "default" + BUILD_DEPS += , clang (>= 1:5.0.2) [$(filter-out armel,$(OOO_LE_ARCHS))] + else + export CLANG_CC=clang-$(CLANG_VERSION) + export CLANG_CXX=clang++-$(CLANG_VERSION) + BUILD_DEPS += , clang-$(CLANG_VERSION) [$(filter-out armel,$(OOO_LE_ARCHS))] + endif + endif + endif +else + ifeq "$(CLANG_VERSION)" "default" + BUILD_DEPS += , clang (>= 1:5.0.2) + CONFIGURE_FLAGS+= CC=clang CXX=clang++ + else + BUILD_DEPS += , clang-$(CLANG_VERSION) + CONFIGURE_FLAGS+= CC=clang-$(CLANG_VERSION) CXX=clang++-$(CLANG_VERSION) + endif + ifeq "$(ENABLE_COMPILER_PLUGINS)" "y" + CONFIGURE_FLAGS += --enable-compiler-plugins + CLANGDIR := /usr/lib/llvm-$(shell $(CLANG) --version | head -n 1 | awk '{ print $$3 }' | cut -d. -f1) + ifeq "$(CLANG_VERSION)" "default" + BUILD_DEPS += , libclang-dev, llvm-dev + else + BUILD_DEPS += , libclang-$(CLANG_VERSION)-dev, llvm-$(CLANG_VERSION)-dev + endif + endif +endif +USE_GOLD=n +# leaves cruft around after building because it runs update_pch.sh.. +ENABLE_PCH=n + +ifeq "$(USE_DWZ)" "y" + BUILD_DEPS += , debhelper (>= 10.10.4) + # dwz 0.12-3 claims to have DW_OP_GNU support but still + # dwz: debian/libreoffice-core/usr/lib/libreoffice/program/libmergedlo.so: Couldn't find DIE referenced by DW_OP_GNU_parameter_ref + # happens + BUILD_DEPS += , dwz (>> 0.12-3) +endif + +ifneq "$(PACKAGE_SDK)" "y" + CONFIGURE_FLAGS += --disable-odk + ifneq "$(PACKAGE_SDK_DOCS)" "y" + CONFIGURE_FLAGS += --without-doxygen --without-javadoc + endif +else + ifeq "$(PACKAGE_SDK_DOCS)" "y" + BUILD_DEPS_INDEP += , doxygen (>= 1.8.4) , graphviz + else + CONFIGURE_FLAGS += --without-doxygen --without-javadoc + endif +endif + +ifeq "$(ENABLE_PDFIMPORT)" "y" + ifeq "$(ENABLE_POPPLER)" "y" + BUILD_DEPS += , libpoppler-dev (>= 0.12.0), libpoppler-private-dev, libpoppler-cpp-dev + else + CONFIGURE_FLAGS += --disable-poppler + endif + ifeq "$(ENABLE_PDFIUM)" "n" + CONFIGURE_FLAGS += --disable-pdfium + endif +endif + +ifneq (,$(filter graphite, $(SYSTEM_STUFF))) + BUILD_DEPS += , libgraphite2-dev (>= 0.9.3) +endif + +ifneq (,$(filter harfbuzz, $(SYSTEM_STUFF))) + BUILD_DEPS += , libharfbuzz-dev (>= 0.9.42) +endif + +ifneq (,$(filter libexttextcat, $(SYSTEM_STUFF))) + BUILD_DEPS += , libexttextcat-dev (>= 3.4.1) + TEXTCAT_DATA_RECOMMENDS := libexttextcat-data +endif + +ifneq "$(ENABLE_LDAP)" "y" + CONFIGURE_FLAGS += --disable-ldap +endif + +ifeq "$(ENABLE_LIBNUMBERTEXT)" "y" + ifneq (,$(filter libnumbertext, $(SYSTEM_STUFF))) + BUILD_DEPS += , libnumbertext-dev (>= 1.0.6) + NUMBERTEXT_DATA_RECOMMENDS := libnumbertext-data + endif +else + CONFIGURE_FLAGS += --disable-libnumbertext +endif + +ifneq (,$(filter jpeg, $(SYSTEM_STUFF))) + BUILD_DEPS += , libjpeg-dev +endif +ifneq (,$(filter libxml, $(SYSTEM_STUFF))) + BUILD_DEPS += , libxml2-dev (>= 2.8), libxml2-utils + BUILD_DEPS += , libxslt1-dev +else + CONFIGURE_FLAGS += --without-system-libxml +endif +ifneq (,$(filter xmlsec, $(SYSTEM_STUFF))) + BUILD_DEPS += , libxmlsec1-dev (>= 1.2.28) +endif +ifneq (,$(filter expat, $(SYSTEM_STUFF))) + BUILD_DEPS += , libexpat1-dev +endif +ifneq (,$(filter odbc, $(SYSTEM_STUFF))) + BUILD_DEPS += , unixodbc-dev (>= 2.2.11) +endif +ifneq (,$(filter sane, $(SYSTEM_STUFF))) + BUILD_DEPS += , libsane-dev +endif +ifneq (,$(filter libpng, $(SYSTEM_STUFF))) + BUILD_DEPS += , libpng-dev +endif + +ifneq (,$(filter curl, $(SYSTEM_STUFF))) + BUILD_DEPS += , libcurl4-$(CURL_SECTYPE)-dev +endif + +COINMP_MINVER=(>= 1.7.6+dfsg1-2) + COINUTILS_MINVER=(>= 2.10.14+repack1-1) + # go sure given #873362 + COINMP_MINVER=(>= 1.8.3-3) +ifneq ($(ENABLE_COINMP),y) + CONFIGURE_FLAGS += --disable-coinmp +else + ifneq (,$(filter coinmp, $(SYSTEM_STUFF))) + BUILD_DEPS += , coinor-libcoinmp-dev $(COINMP_MINVER), coinor-libcoinutils-dev $(COINUTILS_MINVER) + endif +endif + +ifneq (,$(filter amd64,$(DEB_HOST_ARCH))) + SMALL_SYMBOLS = n +endif + +ifeq "$(ENABLE_SYMBOLS)" "y" + # Small symbols? + ifeq "$(SMALL_SYMBOLS)" "y" + CONFIGURE_FLAGS += --enable-symbols=SMALL + DEB_CFLAGS_MAINT_STRIP := -g + DEB_CXXFLAGS_MAINT_STRIP := -g + DEB_CFLAGS_MAINT_PREPEND += -g1 + DEB_CXXFLAGS_MAINT_PREPEND += -g1 +export DEB_CFLAGS_MAINT_STRIP DEB_CXXFLAGS_MAINT_STRIP +export DEB_CFLAGS_MAINT_PREPEND DEB_CXXFLAGS_MAINT_PREPEND + else + CONFIGURE_FLAGS += --enable-symbols + endif +else + DEB_CFLAGS_MAINT_STRIP := -g + DEB_CXXFLAGS_MAINT_STRIP := -g +export DEB_CFLAGS_MAINT_STRIP DEB_CXXFLAGS_MAINT_STRIP +endif +export DPKG_EXPORT_BUILDFLAGS=y +include /usr/share/dpkg/buildflags.mk +ifeq (debug,$(findstring debug,$(DEB_BUILD_OPTIONS))) + CONFIGURE_FLAGS += --enable-debug +endif +ifeq (noopt,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CONFIGURE_FLAGS += --disable-optimized +endif + +ifeq "$(ENABLE_PYTHON)" "y" +PYMAJOR:=$(shell $(PYTHON) -c "import sys; print (sys.version_info[0])") +PYMINOR:=$(shell $(PYTHON) -c "import sys; print (sys.version_info[1])") +PYMINORPLUS1:=$(shell $(PYTHON) -c "import sys; print (sys.version_info[1]+1)") +PYTHON_SITE:=debian/python3-uno/$(shell $(PYTHON) -c 'from distutils import sysconfig; print(sysconfig.get_python_lib())') +endif + + BUILD_DEPS += , $(PYTHON) +ifeq "$(ENABLE_PYTHON)" "y" + BUILD_DEPS += , $(PYTHON)-dev (>= 3.3) + BUILD_DEPS += , $(PYTHON)-distutils + BUILD_DEPS += , dh-python + ifeq "$(RUN_MAKE_CHECK)" "y" + ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + BUILD_DEPS += , $(PYTHON)-lxml + else + CONFIGURE_FLAGS += --without-lxml + endif + endif +endif + + BUILD_DEPS += , debhelper-compat (= 12) +ifeq "$(BUILD_DBGSYM_PACKAGES)" "y" + # from debhelper changelog + BUILD_DEPS += , dpkg-dev (>= 1.18.2~) +else + BUILD_DEPS += , dpkg-dev (>= 1.17.14) +endif + + ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS += , locales$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , gdb$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , fontconfig$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , fonts-liberation2$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , fonts-crosextra-carlito$(OOO_NO_CHECK_ARCHS) + # https://lists.freedesktop.org/archives/libreoffice/2017-May/077764.html + BUILD_DEPS += , fonts-dejavu$(OOO_NO_CHECK_ARCHS) + ifneq (,$(filter cppunit, $(SYSTEM_STUFF))) + BUILD_DEPS += , libcppunit-dev (>= 1.14)$(OOO_NO_CHECK_ARCHS) + endif + # 17:35 <@sberg_> vmiklos, oh, what kind of poor test is that? "warn:sal.osl:3785:2:sal/osl/unx/process.cxx:344: ChildStatusProc : starting 'pstoedit' failed" etc. is what I see in workdir/CppunitTest/filter_eps_test.test.log... + BUILD_DEPS += , pstoedit$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , imagemagick$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , ghostscript$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , hunspell-en-us$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , hyphen-en-us$(OOO_NO_CHECK_ARCHS) + else + CONFIGURE_FLAGS += --without-cppunit + endif + ifeq "$(ENABLE_JUNIT4)" "y" + BUILD_DEPS += , junit4 $(JUNIT_MIN_VER) [$(OOO_JUNIT_ARCHS)] + else + CONFIGURE_FLAGS += --without-junit + endif + ifeq "$(ENABLE_CHART_TESTS)" "y" + CONFIGURE_FLAGS += --enable-chart-tests + endif + ifeq "$(ENABLE_EXPORT_VALIDATION_TESTS)" "y" + BUILD_DEPS += , libofficeotron-java$(OOO_NO_CHECK_ARCHS) , libodfvalidator-java$(OOO_NO_CHECK_ARCHS) + else + CONFIGURE_FLAGS += --without-export-validation + endif +ifneq "$(BUILD_ONLY_EN_US)" "y" + ifeq (lang=,$(findstring lang=,$(DEB_BUILD_OPTIONS))) + ISOS=$(shell echo "$(DEB_BUILD_OPTIONS) " | sed -n 's/^.*lang=\([^\s].*\)\s.*/\1/p' | awk '{ print $$1 }' | sed -e 's/,/ /g') + ifeq "$(ENABLE_HELP)" "n" + HELPISOS= + else + HELPISOS=$(shell echo "$(DEB_BUILD_OPTIONS) " | sed -n 's/^.*lang=\([^\s].*\)\s.*/\1/p' | awk '{ print $$1 }' | sed -e 's/,/ /g') + endif + LANGPACKISOS=$(shell echo "$(DEB_BUILD_OPTIONS) " | sed -n 's/^.*lang=\([^\s].*\)\s.*/\1/p' | awk '{ print $$1 }' | sed -e 's/,/ /g') + else + # Note that the first one here *has to be* en-US. the first one gets + # gid_Module_Root as filelist later and the rest gid_Module_Root.$iso + # but we can't/shouldn't do dynamic switching, so let en-US be the first + # one to that gid_Module_Root always is english and the other langpacks + # have gid_Module_Root.$iso + #ISOS=$(shell $(SOURCE_TREE)/bin/lo-xlate-lang -i all') + ISOS:=en-US af am ar as ast be bg bn br bs ca ca-valencia cs cy da de dz el \ + en-GB en-ZA eo es et eu fa fi fr ga gd gl gu gug he hi hr hu id is it ja \ + ka kk km kmr-Latn kn ko lt lv mk mn ml mr nb ne nl nn nr nso oc om or \ + pa-IN pl pt pt-BR ro ru rw si sk sl sr sr-Latn ss st sv szl \ + ta te tg th tn tr ts ug uk uz ve vi xh zh-CN zh-TW zu + ifeq "$(ENABLE_HELP)" "n" + HELPISOS:= + else + #HELPISOS:=$(shell $(SOURCE_TREE)/bin/lo-xlate-lang -i all') + HELPISOS:=en-US ca ca-valencia cs da de dz el en-GB es et eu fi fr gl hi hu id it \ + ja km ko nl om pl pt pt-BR ru sk sl sv tr vi zh-CN zh-TW + endif + #LANGPACKISOS:=$(shell $(SOURCE_TREE)/bin/lo-xlate-lang -i all') + LANGPACKISOS:=en-US af am ar as ast be bg bn br bs ca ca-valencia cs cy da de dz el \ + en-GB en-ZA eo es et eu fa fi fr ga gd gl gu gug he hi hr hu id is it ja \ + ka kk km kmr-Latn kn ko lt lv mk mn ml mr nb ne nl nn nr nso oc om or \ + pa-IN pl pt pt-BR ro ru rw si sk sl sr sr-Latn ss st sv szl \ + ta te tg th tn tr ts ug uk uz ve vi xh zh-CN zh-TW zu + endif +else + ISOS=en-US + ifeq "$(ENABLE_HELP)" "n" + HELPISOS= + else + HELPISOS=en-US + endif + LANGPACKISOS=en-US +endif +BUILD_ISOS = $(ISOS) + +ifneq "$(BUILD_ONLY_EN_US)" "y" + ifneq "$(BUILD_ISOS)" "en-US" + CONFIGURE_FLAGS_LANG += --with-lang="$(BUILD_ISOS)" + CONFIGURE_FLAGS_INDEP += $(CONFIGURE_FLAGS_LANG) + BUILD_DEPS_INDEP += , gettext + endif +endif + +ifeq "$(ENABLE_JAVA)" "y" + BUILD_DEPS += , maven-repo-helper + ifeq "$(JDK)" "default" + JAVA_HOME=/usr/lib/jvm/default-java + BUILD_DEPS += , java-common (>= 0.61) + DEFAULT_JDK := $(call java_dependency, default-jdk) + # build-depend on 1.9 (upstream needs it anyway for module-info support) + BUILD_DEPS += , $(shell echo $(DEFAULT_JDK) | sed -e 's/default-jdk/default-jdk (>= 2:1.9)/') + endif + ifeq "$(JDK)" "openjdk" + BUILD_DEPS += , openjdk-$(JAVA_MAINVER)-jdk + JAVA_HOME=/usr/lib/jvm/java-$(JAVA_MAINVER)-openjdk-$(DEB_HOST_ARCH) + endif + TEST_JAVA_HOME=$(JAVA_HOME) + ifeq "$(ENABLE_MEDIAWIKI)" "y" + BUILD_DEPS_INDEP += , ant (>= 1.7.0)$(OOO_NO_JAVA_ARCHS) , ant-optional (>= 1.7.0)$(OOO_NO_JAVA_ARCHS) + else + # report-builder is done in build-arch already + ifneq (,$(filter jfreereport, $(SYSTEM_STUFF))) + BUILD_DEPS += , ant (>= 1.6.5)$(OOO_NO_JAVA_ARCHS) + else + BUILD_DEPS_INDEP += , ant (>= 1.6.5)$(OOO_NO_JAVA_ARCHS) + endif + endif + # but upstream also says --target=1.8 so 1.8 is fine in runtime + JAVA_RUNTIME_DEPENDS = default-jre (>= 2:1.8) + JAVA_RUNTIME_DEPENDS += | java8-runtime + # Suns Java "packages" + JAVA_RUNTIME_DEPENDS += | jre +export JAVA_HOME + CONFIGURE_FLAGS += --with-jdk-home=$(JAVA_HOME) + JAVA_COMMON_DEPENDS= , libreoffice-java-common + JAVA_COMMON_DEPENDS_VERSION:= (>= $(BASE_VERSION)~) + ifeq "$(PACKAGE_SDK)" "y" + ifeq "$(PACKAGE_UNOWINREG_DLL)" "y" + ifeq "$(BUILD_UNOWINREG_DLL)" "y" + CONFIGURE_FLAGS_INDEP += --enable-build-unowinreg + BUILD_DEPS_INDEP += , g++-mingw-w64-i686 + CONFIGURE_FLAGS_INDEP += --with-mingw-cross-compiler=i686-w64-mingw32-g++ + endif + endif + endif + ifeq "$(ENABLE_MEDIAWIKI)" "y" + CONFIGURE_FLAGS_INDEP += --enable-ext-wiki-publisher + endif + ifeq "$(ENABLE_REPORTBUILDER)" "y" + # report-builder + ifneq (,$(filter jfreereport, $(SYSTEM_STUFF))) + REPORT_BUILDER_BUILD_DEPS += , libbase-java$(OOO_NO_REPORTBUILDER_ARCHS) , libsac-java$(OOO_NO_REPORTBUILDER_ARCHS) , libxml-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS) , libflute-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS) , libpentaho-reporting-flow-engine-java (>= 0.9.4)$(OOO_NO_REPORTBUILDER_ARCHS) , liblayout-java (>= 0.2.10)$(OOO_NO_REPORTBUILDER_ARCHS) , libloader-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS) , libformula-java (>= 1.1.7)$(OOO_NO_REPORTBUILDER_ARCHS) , librepository-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS) , libfonts-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS) , libserializer-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS) + REPORT_BUILDER_JAR_DEPENDS := , libbase-java, libsac-java, libxml-java (>= 1.1.6), libflute-java (>= 1.1.6), libpentaho-reporting-flow-engine-java (>= 0.9.4), liblayout-java (>= 0.2.10), libloader-java (>= 1.1.6), libformula-java (>= 1.1.7), librepository-java (>= 1.1.6), libfonts-java (>= 1.1.6), libserializer-java (>= 1.1.6) + CONFIGURE_FLAGS += --with-libbase-jar=/usr/share/java/libbase.jar --with-libxml-jar=/usr/share/java/libxml.jar --with-flute-jar=/usr/share/java/flute.jar --with-jfreereport-jar=/usr/share/java/flow-engine.jar --with-liblayout-jar=/usr/share/java/liblayout.jar --with-libloader-jar=/usr/share/java/libloader.jar --with-libformula-jar=/usr/share/java/libformula.jar --with-librepository-jar=/usr/share/java/librepository.jar --with-libfonts-jar=/usr/share/java/libfonts.jar --with-libserializer-jar=/usr/share/java/libserializer.jar + endif + ifneq (,$(filter apache-commons, $(SYSTEM_STUFF))) + REPORT_BUILDER_BUILD_DEPS += , libcommons-logging-java$(OOO_NO_JAVA_ARCHS) + REPORT_BUILDER_JAR_DEPENDS += , libcommons-logging-java + CONFIGURE_FLAGS += --with-commons-logging-jar=/usr/share/java/commons-logging.jar + endif + BUILD_DEPS += $(REPORT_BUILDER_BUILD_DEPS) + else + CONFIGURE_FLAGS += --disable-report-builder + endif + ifeq "$(ENABLE_NLPSOLVER)" "y" + CONFIGURE_FLAGS_INDEP += --enable-ext-nlpsolver + endif + OOO_OFFICEBEAN_DEP = libofficebean-java + BUILD_DEPS += , javahelper $(JAVAHELPER_MIN_VERSION) +else + CONFIGURE_FLAGS += --without-java + DEBHELPER_OPTIONS += -Nlibreoffice-officebean -Nlibofficebean-java -Nlibreoffice-java-common -Nlibreoffice-script-provider-bsh -Nlibreoffice-script-provider-js -Nlibreoffice-subsequentcheckbase -Nlibunoil-java -Nlibofficebean-java -Nlibjuh-java -Nlibridl-java -Nlibunoloader-java -Nlibjurt-java -Nliblibreoffice-java -Nlibreoffice-sdbc-hsqldb +endif + +ifeq "$(ENABLE_JAVA)" "y" + ifeq "$(shell $(JAVA_HOME)/bin/java -version 2>&1 | grep -q Zero && echo true)" "true" + #RUN_MAKE_CHECK:=n + ENABLE_JUNIT4=n + endif +endif + +ifneq (,$(filter nss, $(SYSTEM_STUFF))) + BUILD_DEPS+= , libnss3-dev (>= 3.12.3) + BUILD_DEPS+= , libnspr4-dev +endif + +ifeq "$(USE_UCPP)" "y" + ifneq (,$(filter ucpp, $(SYSTEM_STUFF))) + IDLC_CPP_DEPENDS := ucpp + endif +else +# hardcode 4.7 as 4.8 fails: +# 14:17 <@caolan> ah, "build fails with cpp 4.8.0, this is fixable by passing +# -P, but then idlc produces empty urd files" + IDLC_CPP_DEPENDS := cpp-4.7 + CONFIGURE_FLAGS += --with-idlc-cpp=cpp-4.7 +endif + BUILD_DEPS += , $(IDLC_CPP_DEPENDS) + +ifneq (,$(filter hunspell, $(SYSTEM_STUFF))) + BUILD_DEPS += , libhunspell-dev (>= 1.1.5-2) +endif + CONFIGURE_FLAGS += --with-external-dict-dir=$(DICT_DIR) + +ifneq (,$(filter altlinuxhyph, $(SYSTEM_STUFF))) + BUILD_DEPS += , libhyphen-dev (>= 2.4) +endif + CONFIGURE_FLAGS += --with-external-hyph-dir=$(HYPH_DIR) + +ifneq (,$(filter boost, $(SYSTEM_STUFF))) + ifneq "$(BOOST_VERSION)" "default" + BUILD_DEPS += , libboost$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-date-time$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-iostreams$(BOOST_VERSION)-dev, libboost-filesystem$(BOOST_VERSION)-dev, libboost-locale$(BOOST_VERSION)-dev + #BUILD_DEPS += , libboost-thread$(BOOST_VERSION)-dev, libboost-program-options$(BOOST_VERSION)-dev + ifeq (,$(filter orcus, $(SYSTEM_STUFF))) + BUILD_DEPS += , libboost-system$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-iostreams$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-program-options$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-filesystem$(BOOST_VERSION)-dev $(BOOST_MINVER) + endif + else + BUILD_DEPS += , libboost-dev $(BOOST_MINVER), libboost-date-time-dev $(BOOST_MINVER), libboost-iostreams-dev $(BOOST_MINVER), libboost-filesystem-dev $(BOOST_MINVER), libboost-locale-dev $(BOOST_MINVER) + #BUILD_DEPS += , libboost-thread-dev, libboost-program-options-dev + ifeq (,$(filter orcus, $(SYSTEM_STUFF))) + BUILD_DEPS += , libboost-system-dev $(BOOST_MINVER), libboost-iostreams-dev $(BOOST_MINVER), libboost-program-options-dev $(BOOST_MINVER), libboost-filesystem-dev $(BOOST_MINVER) + endif + endif + ifeq "$(shell if [ -e /usr/lib/$(DEB_HOST_MULTIARCH)/libboost_date_time.so ]; then echo true; fi)" "true" + CONFIGURE_FLAGS += --with-boost-libdir=/usr/lib/$(DEB_HOST_MULTIARCH) + endif +endif + +ifneq "$(ENABLE_SKIA)" "y" + CONFIGURE_FLAGS += --disable-skia +endif + +ifneq (,$(filter mdds, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmdds-dev (>= 1.5) +endif + +ifneq (,$(filter orcus, $(SYSTEM_STUFF))) + BUILD_DEPS += , liborcus-dev (>= 0.15) +endif + +ifneq (,$(filter clucene, $(SYSTEM_STUFF))) + BUILD_DEPS += , libclucene-dev (>= 2.3.3.4-4.1) +endif + +ifeq "$(USE_EXTERNAL_CXXLIBS)" "y" + ifneq (,$(filter librevenge, $(SYSTEM_STUFF))) + BUILD_DEPS += , librevenge-dev + endif + ifneq (,$(filter libwpd, $(SYSTEM_STUFF))) + BUILD_DEPS += , libwpd-dev (>= 0.10) + endif + ifneq (,$(filter mythes, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmythes-dev (>= 2:1.2) + endif + ifneq (,$(filter libwps, $(SYSTEM_STUFF))) + BUILD_DEPS += , libwps-dev (>= 0.4) + ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS += , libwps-dev (>= 0.4.9) + endif + endif + ifneq (,$(filter libwpg, $(SYSTEM_STUFF))) + BUILD_DEPS += , libwpg-dev (>= 0.3) + endif + ifneq (,$(filter libvisio, $(SYSTEM_STUFF))) + BUILD_DEPS += , libvisio-dev (>= 0.1) + endif + ifneq (,$(filter libcdr, $(SYSTEM_STUFF))) + BUILD_DEPS += , libcdr-dev (>= 0.1) + endif + ifneq (,$(filter libmspub, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmspub-dev (>= 0.1) + endif + ifneq (,$(filter libmwaw, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmwaw-dev (>= 0.3.1) + ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS += , libmwaw-dev (>= 0.3.15) + endif + endif + ifneq (,$(filter libodfgen, $(SYSTEM_STUFF))) + BUILD_DEPS += , libodfgen-dev (>= 0.1) + endif + ifneq (,$(filter libepubgen, $(SYSTEM_STUFF))) + BUILD_DEPS += , libepubgen-dev (>= 0.1.0) + endif + ifneq (,$(filter libetonyek, $(SYSTEM_STUFF))) + BUILD_DEPS += , libetonyek-dev + ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS += , libetonyek-dev (>= 0.1.8) + endif + endif + ifneq (,$(filter libfreehand, $(SYSTEM_STUFF))) + BUILD_DEPS += , libfreehand-dev (>= 0.1) + endif + ifneq (,$(filter libabw, $(SYSTEM_STUFF))) + BUILD_DEPS += , libabw-dev (>= 0.1) + endif + ifneq (,$(filter libpagemaker, $(SYSTEM_STUFF))) + BUILD_DEPS += , libpagemaker-dev + endif + ifneq (,$(filter libzmf, $(SYSTEM_STUFF))) + BUILD_DEPS += , libzmf-dev + endif + ifneq (,$(filter libstaroffice, $(SYSTEM_STUFF))) + BUILD_DEPS += , libstaroffice-dev + ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS += , libstaroffice-dev (>= 0.0.3) + endif + endif + ifneq (,$(filter libqxp, $(SYSTEM_STUFF))) + BUILD_DEPS += , libqxp-dev + endif + ifneq (,$(filter libebook, $(SYSTEM_STUFF))) + BUILD_DEPS += , libe-book-dev + ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS += , libe-book-dev (>= 0.1.2) + endif + endif + ifneq (,$(filter libcmis, $(SYSTEM_STUFF))) + BUILD_DEPS += , libcmis-dev (>= 0.5.2~) + endif + ifneq (,$(filter qrcodegen, $(SYSTEM_STUFF))) + BUILD_DEPS += , libqrcodegencpp-dev + endif +endif + CONFIGURE_FLAGS += --with-external-thes-dir=$(THES_DIR) + +ifeq "$(INSTALL_APPARMOR_PROFILES)" "y" + BUILD_DEPS += , dh-apparmor + ifeq "$(CHECK_APPARMOR_PROFILES)" "true" + BUILD_DEPS += , apparmor + endif +endif + +ifeq "$(ENABLE_EOT)" "y" + CONFIGURE_FLAGS += --enable-eot + ifneq (,$(filter libeot, $(SYSTEM_STUFF))) + BUILD_DEPS += , libeot-dev + endif +endif + +ifneq (,$(filter lcms2, $(SYSTEM_STUFF))) + BUILD_DEPS += , liblcms2-dev +endif + +ifneq (,$(filter openldap, $(SYSTEM_STUFF))) + BUILD_DEPS += , libldap2-dev +endif + +ifneq (,$(filter liblangtag, $(SYSTEM_STUFF))) + BUILD_DEPS += , liblangtag-dev (>= 0.4) +endif + +ifneq (,$(filter icu, $(SYSTEM_STUFF))) + BUILD_DEPS += , libicu-dev (>= 52) +endif + + +ifeq "$(BUILD_CAIROCANVAS)" "y" + ifneq (,$(filter cairo, $(SYSTEM_STUFF))) + BUILD_DEPS+= , libcairo2-dev + endif +else + CONFIGURE_FLAGS+= --disable-cairo +endif + +ifeq "$(ENABLE_KF5)" "y" + CONFIGURE_FLAGS += --enable-kf5 + BUILD_DEPS += , libkf5coreaddons-dev, libkf5i18n-dev, libkf5config-dev, libkf5windowsystem-dev, libkf5kio-dev +endif + PLASMA_ICONSET_DEP=libreoffice-style-breeze +ifeq "$(ENABLE_QT5)" "y" + CONFIGURE_FLAGS += --enable-qt5 + BUILD_DEPS += , qtbase5-dev $(QT5_MINVER), qt5-qmake $(QT5_MINVER), qtbase5-dev-tools $(QT5_MINVER) + BUILD_DEPS += , libqt5x11extras5-dev $(QT5_MINVER) + BUILD_DEPS += , libglib2.0-dev (>= 2.4) + BUILD_DEPS += , libxcb1-dev + BUILD_DEPS += , libxcb-icccm4-dev + ifeq "$(BUSTER_BACKPORT)" "y" + # for correct qmake/moc + BUILD_DEPS += , qtchooser + export QT_SELECT=5 + endif +endif + +ifeq "$(MYSQL_FLAVOUR)" "default" + BUILD_DEPS += , default-libmysqlclient-dev +else + ifeq "$(MYSQL_FLAVOUR)" "mysql" + ifneq (,$(filter mariadb, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmysqlclient-dev + endif + MARIADBCONFIG=/usr/bin/mysql_config + endif + ifeq "$(MYSQL_FLAVOUR)" "mariadb" + ifneq (,$(filter mariadb, $(SYSTEM_STUFF))) + # deducted from default-libmysqlclient-dev Depends + BUILD_DEPS += , libmariadbclient-dev-compat + endif + MARIADBCONFIG=/usr/bin/mariadb_config + endif +endif + +ifeq "$(ENABLE_FIREBIRD)" "y" + BASE_FIREBIRD_RECOMMENDS = libreoffice-sdbc-firebird [$(OOO_FIREBIRD_ARCHS)] + ifneq (,$(filter libatomic-ops, $(SYSTEM_STUFF))) + BUILD_DEPS += , libatomic-ops-dev (>= 7.3~alpha1+git20110913-1)$(OOO_NO_FIREBIRD_ARCHS) + endif + ifneq (,$(filter libtommath, $(SYSTEM_STUFF))) + BUILD_DEPS += , libtommath-dev$(OOO_NO_FIREBIRD_ARCHS) + endif + ifneq (,$(filter firebird, $(SYSTEM_STUFF))) + BUILD_DEPS += , firebird-dev (>= 3.0.0.32483.ds4-4)$(OOO_NO_FIREBIRD_ARCHS) + # we need libEngine12.so + ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS += , firebird3.0-server-core $(OOO_NO_FIREBIRD_ARCHS) + endif + FIREBIRD_ENGINE_DEPENDS += firebird3.0-server-core + endif +else + CONFIGURE_FLAGS += --disable-firebird-sdbc + DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-firebird +endif + +ifeq "$(BUILD_GTK3)" "y" + BUILD_DEPS += , libgtk-3-dev (>= 3.18.0), libglib2.0-dev (>= 2.38.0) + ifneq (cairo,$(findstring cairo,$(SYSTEM_STUFF))) + $(error GTK3 build fails without system-cairo!!) + endif + ifeq (,$(filter epoxy, $(SYSTEM_STUFF))) + BUILD_DEPS += , libegl1-mesa-dev + endif + GNOME_GTK_RECOMMENDS += libreoffice-gtk3 + ifeq "$(ENABLE_INTROSPECTION)" "y" + BUILD_DEPS += , gobject-introspection (>= 1.32.0), libgirepository1.0-dev (>= 1.32) + CONFIGURE_FLAGS += --enable-introspection + else + DEBHELPER_OPTIONS+= -Ngir1.2-lokdocview-0.1 + endif +endif + +ifeq "$(ENABLE_EVO2)" "n" + CONFIGURE_FLAGS += --disable-evolution2 + DEBHELPER_OPTIONS += -Nlibreoffice-evolution +else + CONFIGURE_FLAGS += --enable-evolution2 + BUILD_DEPS += , libebook1.2-dev + LIBEBOOK_DEP = $(shell debian/scripts/get_libebook_dep.sh) +endif + +ifeq "$(ENABLE_SDBC_POSTGRESQL)" "y" + ifneq (,$(filter postgresql, $(SYSTEM_STUFF))) + BUILD_DEPS += , libpq-dev (>= 9.0~) + else + BUILD_DEPS += , libkrb5-dev + endif +else + CONFIGURE_FLAGS += --disable-postgresql-sdbc + DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-postgresql +endif + +ifeq "$(ENABLE_RANDR)" "y" + BUILD_DEPS += , libxrandr-dev +else + CONFIGURE_FLAGS += --disable-randr +endif + +ifneq "$(ENABLE_PYTHON)" "y" + DEBHELPER_OPTIONS+= -Npython3-uno -Nlibreoffice-script-provider-python -Npython3-access2base + CONFIGURE_FLAGS += --disable-python +else + PYUNO_DEPENDS = python3-uno (>= 4.4.0~beta2) + CONFIGURE_FLAGS += --enable-python=system +endif + +ifneq "$(PACKAGE_LIBRELOGO)" "y" + DEBHELPER_OPTIONS+= -Nlibreoffice-librelogo +endif + +ifeq "$(ENABLE_JAVA)" "y" + ifneq (,$(filter hsqldb, $(SYSTEM_STUFF))) + HSQLDB_MINVER= (>> 1.8.0.10) + HSQLDB_JAR=/usr/share/java/hsqldb1.8.0.jar + BUILD_DEPS += , libhsqldb1.8.0-java $(HSQLDB_MINVER)$(OOO_NO_JAVA_ARCHS) , libarchive-zip-perl$(OOO_NO_JAVA_ARCHS) + BASE_HSQLDB_DEPENDS = libhsqldb1.8.0-java $(HSQLDB_MINVER) + CONFIGURE_FLAGS += --with-hsqldb-jar=$(HSQLDB_JAR) + else + BUILD_DEPS += , libservlet3.1-java + endif + ifeq "$(ENABLE_SCRIPT_PROVIDER_BSH)" "y" + ifneq (,$(filter beanshell, $(SYSTEM_STUFF))) + BUILD_DEPS_INDEP += , libbsh-java + endif + CONFIGURE_FLAGS += --enable-scripting-beanshell + else + CONFIGURE_FLAGS += --disble-scripting-beanshell + DEBHELPER_OPTIONS += -Nlibreoffice-script-provider-bsh + endif + ifeq "$(ENABLE_SCRIPT_PROVIDER_JS)" "y" + CONFIGURE_FLAGS += --enable-scripting-javascript + else + CONFIGURE_FLAGS += --disable-scripting-javascript + DEBHELPER_OPTIONS += -Nlibreoffice-script-provider-js + endif +endif + +ifneq (,$(filter lpsolve, $(SYSTEM_STUFF))) + ifeq "$(USE_SHARED_LPSOLVE)" "y" + BUILD_DEPS += , liblpsolve55-dev $(LPSOLVE_MIN_VERSION), lp-solve $(LPSOLVE_MIN_VERSION) + LPSOLVE_DEP = lp-solve $(LPSOLVE_MIN_VERSION) + else + BUILD_DEPS += , liblpsolve55-dev $(LPSOLVE_MIN_VERSION) + endif + ifeq "$(USE_LIBSUITESPARSE)" "y" + BUILD_DEPS += , libsuitesparse-dev $(SUITESPARSE_MIN_VERSION) + else + BUILD_DEPS += , libufsparse-dev + endif +endif + +ifeq "$(USE_DBUS)" "y" + BUILD_DEPS += , libdbus-1-dev (>= 0.60) + CONFIGURE_FLAGS += --enable-dbus + ifeq "$(ENABLE_BLUETOOTH)" "y" + BUILD_DEPS += , libglib2.0-dev (>= 2.4) + ifneq (,$(filter bluez, $(SYSTEM_STUFF))) + BUILD_DEPS += , libbluetooth-dev [linux-any] + endif + else + CONFIGURE_FLAGS += --disable-sdremote-bluetooth + endif + ifeq "$(ENABLE_PACKAGEKIT)" "y" + CONFIGURE_FLAGS += --enable-packagekit + endif +endif + +ifeq "$(ENABLE_AVAHI)" "y" + BUILD_DEPS += , libavahi-client-dev + CONFIGURE_FLAGS += --enable-avahi +endif + +ifeq "$(USE_GSTREAMER)" "y" + BUILD_DEPS += , libgstreamer1.0-dev + CONFIGURE_FLAGS += --enable-gstreamer-1-0 + BUILD_DEPS += , libgstreamer-plugins-base1.0-dev + GSTREAMER_PLUGINS_SUGGESTS += , gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-plugins-ugly, gstreamer1.0-plugins-bad, gstreamer1.0-libav +else + CONFIGURE_FLAGS += --disable-gstreamer-1-0 +endif + +ifeq "$(ENABLE_WEBDAV)" "y" + ifeq "$(WEBDAV_LIB)" "neon" + ifneq (,$(filter neon, $(SYSTEM_STUFF))) + ifneq "$(NEON_SECTYPE)" "openssl" + BUILD_DEPS += , libneon$(NEONSONR)-$(NEON_SECTYPE)-dev + else + BUILD_DEPS += , libneon$(NEONSONR)-dev + endif + endif + else + ifneq (,$(filter apr, $(SYSTEM_STUFF))) + BUILD_DEPS += , libaprutil1-dev + endif + ifneq (,$(filter serf, $(SYSTEM_STUFF))) + BUILD_DEPS += , libserf-dev + endif + endif + CONFIGURE_FLAGS += --with-webdav=$(WEBDAV_LIB) +else + CONFIGURE_FLAGS += --with-webdav=no +endif + +ifeq "$(ENABLE_HELP)" "n" + CONFIGURE_FLAGS += --without-helppack-integration --without-help +endif + +ifneq (,$(filter redland, $(SYSTEM_STUFF))) + BUILD_DEPS += , librdf0-dev (>= 1.0.16-2) + SHLIBS_OVERRIDE += -Xunordf +endif + +ifeq "$(ENABLE_GUI)" "y" + ifneq (,$(filter epoxy, $(SYSTEM_STUFF))) + BUILD_DEPS += , libepoxy-dev (>= 1.2) + else + BUILD_DEPS += , libegl1-mesa-dev + endif +endif +ifneq (,$(filter glm, $(SYSTEM_STUFF))) + BUILD_DEPS += , libglm-dev (>= 0.9.9~a2) +endif + +ifneq (,$(filter gpgmepp, $(SYSTEM_STUFF))) + BUILD_DEPS+= , libgpgmepp-dev, libgpgme-dev, libgpg-error-dev +endif +ifeq "$(RUN_MAKE_CHECK)" "y" + BUILD_DEPS+= , gpg + BUILD_DEPS+= , gpgconf + BUILD_DEPS+= , gpg-agent +endif + +ifeq "$(ENABLE_GIO)" "y" + ifneq "$(BUILD_GTK3)" "y" + BUILD_DEPS += , libglib2.0-dev (>= 2.26.0) + endif +else + CONFIGURE_FLAGS += --disable-gio +endif + +ifeq "$(ENABLE_DCONF)" "y" + BUILD_DEPS += , libdconf-dev (>= 0.15.2) +else + CONFIGURE_FLAGS += --disable-dconf +endif + +ifeq ($(ENABLE_MERGELIBS),y) + CONFIGURE_FLAGS += --enable-mergelibs +endif + +ifeq ($(ENABLE_LTO),y) + CONFIGURE_FLAGS += --enable-lto +endif + +ifeq ($(USE_GOLD),y) + CONFIGURE_FLAGS += --enable-ld=gold +else +# --enable-ld=gold is default for debug builds if found +ifneq (debug,$(findstring debug,$(DEB_BUILD_OPTIONS))) + CONFIGURE_FLAGS += --disable-ld +endif +endif +ifneq (,$(findstring mips,$(DEB_HOST_ARCH))) +#10:46 < _rene_> can anyone shed a light on /<>/workdir/LinkTarget/Executable/bestreversemap: error while loading shared libraries: +# /<>/instdir/program/libuno_sal.so.3: ELF file ABI version invalid? both were built in the same LO build +#10:47 < _rene_> mips64el, apparently since gcc9 or new(er) binutils? +#10:47 < _rene_> on an other binary: +#10:47 < _rene_> file /home/rene/libreoffice-6.3.1~rc2/instdir/program/libunoidllo.so +# /home/rene/libreoffice-6.3.1~rc2/instdir/program/libunoidllo.so: ELF 64-bit LSB shared object, MIPS, MIPS64 rel2 version 1 (SYSV), +# dynamically linked, BuildID[sha1]=82f15433db9000b9dfee24ed07e2082ffb439dfd, with debug_info, not stripped +#10:47 < _rene_> (eller, mips64el chroot) +#[...] +#13:49 < aurel32> _rene_: the problem is the ABI version, ie those library have Version ABI: 5 instead of 0 for normal binaries +#13:50 < aurel32> the ABI version 5 will be used for gnu hash support in mips +#13:51 < aurel32> support has been added to binutils trunk recently, although the default is still sysv hash style +#13:51 < aurel32> and glibc support is still being reviewed, it might land in 2.31 +#13:51 < aurel32> previous version of libreoffice used -Wl,--hash-style=sysv +#13:52 < aurel32> now it seems it autodetect that binutils has gnu hash support and it passes -Wl,--hash-style=gnu +#13:52 < aurel32> but there is no support for the full toolchain yet +#13:54 < _rene_> so I need to force -Wl,--hash-style=sysv? +#13:54 < aurel32> --with-linker-hash-style +#13:54 < aurel32> Use linker with --hash-style=